Download tube_CJDF.dgibi

Back to the list

* fichier : tube_CJDF.dgibi
****************************************************************
****    APPROCHE VF "Cell-Centred Formulation" pour la      ****
****    combustion.                                         ****
****    MODELE RDEM                                         ****
****                                                        ****
****    OPERATEURS 'PRIM', PRET, KONV                       ****
****                                                        ****
****    PROPAGATION D'UNE CJDF DANS UN TUBE                 ****
****    A. BECCANTINI, SFME/LTMF, 07.12.09                  ****
****                                                        ****
****************************************************************
*
* The file is divided into 6 parts
*
* 0) exact solution
* 1) mesh
* 2) initial conditions and gas properties
* 3) parameters used in the computation
* 4) the main part (where the computation is realised)
* 5) the post-treatment
*
 'OPTION' 'ECHO' 1 'DIME' 2
         'TRAC' 'PSC' ;
 GRAPH = VRAI ;
* GRAPH = FAUX ;
* Upwind scheme
* METO = 'VLH' ;
* METO = 'SS' ;
 METO = 'AUSMPUP' ;

***********************
***********************
*** EXACT SOLUTION ****
***********************
 LEXACT = (PROG 
 );
 LEXACT = LEXACT ET ( PROG 
    0.185869E+04    0.869073E+00    0.293160E+03
    0.101300E+06    0.000000E+00
    0.184803E+04    0.869073E+00    0.293160E+03
    0.101300E+06    0.000000E+00
    0.183737E+04    0.869073E+00    0.293160E+03
    0.101300E+06    0.000000E+00
    0.182671E+04    0.869073E+00    0.293160E+03
    0.101300E+06    0.000000E+00
 );
 LEXACT = LEXACT ET ( PROG 
    0.181605E+04    0.869073E+00    0.293160E+03
    0.101300E+06    0.000000E+00
    0.180539E+04    0.869073E+00    0.293160E+03
    0.101300E+06    0.000000E+00
    0.179473E+04    0.869073E+00    0.293160E+03
    0.101300E+06    0.000000E+00
    0.178407E+04    0.869073E+00    0.293160E+03
    0.101300E+06    0.000000E+00
 );
 LEXACT = LEXACT ET ( PROG 
    0.177341E+04    0.869073E+00    0.293160E+03
    0.101300E+06    0.000000E+00
    0.176275E+04    0.869073E+00    0.293160E+03
    0.101300E+06    0.000000E+00
    0.175209E+04    0.869073E+00    0.293160E+03
    0.101300E+06    0.000000E+00
    0.174143E+04    0.869073E+00    0.293160E+03
    0.101300E+06    0.000000E+00
 );
 LEXACT = LEXACT ET ( PROG 
    0.173077E+04    0.869073E+00    0.293160E+03
    0.101300E+06    0.000000E+00
    0.172011E+04    0.869073E+00    0.293160E+03
    0.101300E+06    0.000000E+00
    0.170945E+04    0.869073E+00    0.293160E+03
    0.101300E+06    0.000000E+00
    0.169879E+04    0.869073E+00    0.293160E+03
    0.101300E+06    0.000000E+00
 );
 LEXACT = LEXACT ET ( PROG 
    0.168813E+04    0.869073E+00    0.293160E+03
    0.101300E+06    0.000000E+00
    0.167747E+04    0.869073E+00    0.293160E+03
    0.101300E+06    0.000000E+00
    0.166681E+04    0.869073E+00    0.293160E+03
    0.101300E+06    0.000000E+00
    0.165615E+04    0.869073E+00    0.293160E+03
    0.101300E+06    0.000000E+00
 );
 LEXACT = LEXACT ET ( PROG 
    0.164549E+04    0.869073E+00    0.293160E+03
    0.101300E+06    0.000000E+00
    0.163483E+04    0.869073E+00    0.293160E+03
    0.101300E+06    0.000000E+00
    0.162417E+04    0.869073E+00    0.293160E+03
    0.101300E+06    0.000000E+00
    0.161351E+04    0.869073E+00    0.293160E+03
    0.101300E+06    0.000000E+00
 );
 LEXACT = LEXACT ET ( PROG 
    0.160285E+04    0.869073E+00    0.293160E+03
    0.101300E+06    0.000000E+00
    0.159219E+04    0.869073E+00    0.293160E+03
    0.101300E+06    0.000000E+00
    0.158153E+04    0.869073E+00    0.293160E+03
    0.101300E+06    0.000000E+00
    0.157087E+04    0.869073E+00    0.293160E+03
    0.101300E+06    0.000000E+00
 );
 LEXACT = LEXACT ET ( PROG 
    0.156021E+04    0.869073E+00    0.293160E+03
    0.101300E+06    0.000000E+00
    0.154955E+04    0.869073E+00    0.293160E+03
    0.101300E+06    0.000000E+00
    0.153889E+04    0.869073E+00    0.293160E+03
    0.101300E+06    0.000000E+00
    0.152823E+04    0.869073E+00    0.293160E+03
    0.101300E+06    0.000000E+00
 );
 LEXACT = LEXACT ET ( PROG 
    0.151757E+04    0.869073E+00    0.293160E+03
    0.101300E+06    0.000000E+00
    0.150691E+04    0.869073E+00    0.293160E+03
    0.101300E+06    0.000000E+00
    0.149625E+04    0.869073E+00    0.293160E+03
    0.101300E+06    0.000000E+00
    0.148560E+04    0.869073E+00    0.293160E+03
    0.101300E+06    0.000000E+00
 );
 LEXACT = LEXACT ET ( PROG 
    0.147494E+04    0.869073E+00    0.293160E+03
    0.101300E+06    0.000000E+00
    0.146428E+04    0.869073E+00    0.293160E+03
    0.101300E+06    0.000000E+00
    0.145362E+04    0.869073E+00    0.293160E+03
    0.101300E+06    0.000000E+00
    0.144296E+04    0.869073E+00    0.293160E+03
    0.101300E+06    0.000000E+00
 );
 LEXACT = LEXACT ET ( PROG 
    0.143230E+04    0.869073E+00    0.293160E+03
    0.101300E+06    0.000000E+00
    0.142164E+04    0.869073E+00    0.293160E+03
    0.101300E+06    0.000000E+00
    0.141098E+04    0.869073E+00    0.293160E+03
    0.101300E+06    0.000000E+00
    0.140032E+04    0.869073E+00    0.293160E+03
    0.101300E+06    0.000000E+00
 );
 LEXACT = LEXACT ET ( PROG 
    0.138966E+04    0.869073E+00    0.293160E+03
    0.101300E+06    0.000000E+00
    0.137900E+04    0.869073E+00    0.293160E+03
    0.101300E+06    0.000000E+00
    0.136834E+04    0.869073E+00    0.293160E+03
    0.101300E+06    0.000000E+00
    0.135768E+04    0.869073E+00    0.293160E+03
    0.101300E+06    0.000000E+00
 );
 LEXACT = LEXACT ET ( PROG 
    0.134702E+04    0.869073E+00    0.293160E+03
    0.101300E+06    0.000000E+00
    0.133636E+04    0.869073E+00    0.293160E+03
    0.101300E+06    0.000000E+00
    0.132570E+04    0.369181E+01    0.864601E+03
    0.126912E+07    0.101362E+04
    0.132346E+04    0.369181E+01    0.864601E+03
    0.126912E+07    0.101362E+04
 );
 LEXACT = LEXACT ET ( PROG 
    0.132122E+04    0.369181E+01    0.864601E+03
    0.126912E+07    0.101362E+04
    0.131897E+04    0.369181E+01    0.864601E+03
    0.126912E+07    0.101362E+04
    0.131673E+04    0.369181E+01    0.864601E+03
    0.126912E+07    0.101362E+04
    0.131449E+04    0.369181E+01    0.864601E+03
    0.126912E+07    0.101362E+04
 );
 LEXACT = LEXACT ET ( PROG 
    0.131225E+04    0.369181E+01    0.864601E+03
    0.126912E+07    0.101362E+04
    0.131001E+04    0.369181E+01    0.864601E+03
    0.126912E+07    0.101362E+04
    0.130777E+04    0.369181E+01    0.864601E+03
    0.126912E+07    0.101362E+04
    0.130552E+04    0.369181E+01    0.864601E+03
    0.126912E+07    0.101362E+04
 );
 LEXACT = LEXACT ET ( PROG 
    0.130328E+04    0.369181E+01    0.864601E+03
    0.126912E+07    0.101362E+04
    0.130104E+04    0.369181E+01    0.864601E+03
    0.126912E+07    0.101362E+04
    0.129880E+04    0.369181E+01    0.864601E+03
    0.126912E+07    0.101362E+04
    0.129656E+04    0.369181E+01    0.864601E+03
    0.126912E+07    0.101362E+04
 );
 LEXACT = LEXACT ET ( PROG 
    0.129432E+04    0.369181E+01    0.864601E+03
    0.126912E+07    0.101362E+04
    0.129208E+04    0.369181E+01    0.864601E+03
    0.126912E+07    0.101362E+04
    0.128983E+04    0.369181E+01    0.864601E+03
    0.126912E+07    0.101362E+04
    0.128759E+04    0.369181E+01    0.864601E+03
    0.126912E+07    0.101362E+04
 );
 LEXACT = LEXACT ET ( PROG 
    0.128535E+04    0.369181E+01    0.864601E+03
    0.126912E+07    0.101362E+04
    0.128311E+04    0.369181E+01    0.864601E+03
    0.126912E+07    0.101362E+04
    0.128087E+04    0.369181E+01    0.864601E+03
    0.126912E+07    0.101362E+04
    0.127863E+04    0.369181E+01    0.864601E+03
    0.126912E+07    0.101362E+04
 );
 LEXACT = LEXACT ET ( PROG 
    0.127638E+04    0.369181E+01    0.864601E+03
    0.126912E+07    0.101362E+04
    0.127414E+04    0.369181E+01    0.864601E+03
    0.126912E+07    0.101362E+04
    0.127190E+04    0.369181E+01    0.864601E+03
    0.126912E+07    0.101362E+04
    0.126966E+04    0.369181E+01    0.864601E+03
    0.126912E+07    0.101362E+04
 );
 LEXACT = LEXACT ET ( PROG 
    0.126742E+04    0.369181E+01    0.864601E+03
    0.126912E+07    0.101362E+04
    0.126518E+04    0.369181E+01    0.864601E+03
    0.126912E+07    0.101362E+04
    0.126294E+04    0.369181E+01    0.864601E+03
    0.126912E+07    0.101362E+04
    0.126069E+04    0.369181E+01    0.864601E+03
    0.126912E+07    0.101362E+04
 );
 LEXACT = LEXACT ET ( PROG 
    0.125845E+04    0.369181E+01    0.864601E+03
    0.126912E+07    0.101362E+04
    0.125621E+04    0.369181E+01    0.864601E+03
    0.126912E+07    0.101362E+04
    0.125397E+04    0.369181E+01    0.864601E+03
    0.126912E+07    0.101362E+04
    0.125173E+04    0.369181E+01    0.864601E+03
    0.126912E+07    0.101362E+04
 );
 LEXACT = LEXACT ET ( PROG 
    0.124949E+04    0.369181E+01    0.864601E+03
    0.126912E+07    0.101362E+04
    0.124724E+04    0.369181E+01    0.864601E+03
    0.126912E+07    0.101362E+04
    0.124500E+04    0.369181E+01    0.864601E+03
    0.126912E+07    0.101362E+04
    0.124276E+04    0.369181E+01    0.864601E+03
    0.126912E+07    0.101362E+04
 );
 LEXACT = LEXACT ET ( PROG 
    0.124052E+04    0.369181E+01    0.864601E+03
    0.126912E+07    0.101362E+04
    0.123828E+04    0.369181E+01    0.864601E+03
    0.126912E+07    0.101362E+04
    0.123604E+04    0.369181E+01    0.864601E+03
    0.126912E+07    0.101362E+04
    0.123380E+04    0.369181E+01    0.864601E+03
    0.126912E+07    0.101362E+04
 );
 LEXACT = LEXACT ET ( PROG 
    0.123155E+04    0.369181E+01    0.864601E+03
    0.126912E+07    0.101362E+04
    0.122931E+04    0.369181E+01    0.864601E+03
    0.126912E+07    0.101362E+04
    0.122707E+04    0.369181E+01    0.864601E+03
    0.126912E+07    0.101362E+04
    0.122483E+04    0.369181E+01    0.864601E+03
    0.126912E+07    0.101362E+04
 );
 LEXACT = LEXACT ET ( PROG 
    0.122259E+04    0.369181E+01    0.864601E+03
    0.126912E+07    0.101362E+04
    0.122035E+04    0.369181E+01    0.864601E+03
    0.126912E+07    0.101362E+04
    0.121810E+04    0.369181E+01    0.864601E+03
    0.126912E+07    0.101362E+04
    0.121586E+04    0.369181E+01    0.864601E+03
    0.126912E+07    0.101362E+04
 );
 LEXACT = LEXACT ET ( PROG 
    0.121362E+04    0.695313E+00    0.268600E+04
    0.632719E+06    0.151709E+03
    0.120125E+04    0.688084E+00    0.267929E+04
    0.624577E+06    0.140618E+03
    0.118886E+04    0.680916E+00    0.267258E+04
    0.616522E+06    0.129516E+03
    0.117647E+04    0.673807E+00    0.266587E+04
    0.608555E+06    0.118406E+03
 );
 LEXACT = LEXACT ET ( PROG 
    0.116406E+04    0.666758E+00    0.265917E+04
    0.600673E+06    0.107285E+03
    0.115164E+04    0.659768E+00    0.265246E+04
    0.592877E+06    0.961556E+02
    0.113921E+04    0.652838E+00    0.264575E+04
    0.585165E+06    0.850162E+02
    0.112677E+04    0.645966E+00    0.263904E+04
    0.577537E+06    0.738671E+02
 );
 LEXACT = LEXACT ET ( PROG 
    0.111432E+04    0.639152E+00    0.263233E+04
    0.569993E+06    0.627085E+02
    0.110186E+04    0.632396E+00    0.262562E+04
    0.562530E+06    0.515401E+02
    0.108938E+04    0.625697E+00    0.261892E+04
    0.555150E+06    0.403622E+02
    0.107690E+04    0.619055E+00    0.261221E+04
    0.547850E+06    0.291745E+02
 );
 LEXACT = LEXACT ET ( PROG 
    0.106440E+04    0.612470E+00    0.260550E+04
    0.540631E+06    0.179772E+02
    0.105189E+04    0.605942E+00    0.259879E+04
    0.533491E+06    0.677015E+01
    0.103937E+04    0.599469E+00    0.259208E+04
    0.526430E+06   -0.444662E+01
    0.102684E+04    0.593053E+00    0.258537E+04
    0.519447E+06   -0.156731E+02
 );
 LEXACT = LEXACT ET ( PROG 
    0.101430E+04    0.586691E+00    0.257867E+04
    0.512541E+06   -0.269094E+02
    0.100175E+04    0.580384E+00    0.257196E+04
    0.505713E+06   -0.381554E+02
    0.989185E+03    0.574132E+00    0.256525E+04
    0.498960E+06   -0.494113E+02
    0.976609E+03    0.567934E+00    0.255854E+04
    0.492283E+06   -0.606769E+02
 );
 LEXACT = LEXACT ET ( PROG 
    0.964022E+03    0.561790E+00    0.255183E+04
    0.485681E+06   -0.719524E+02
    0.951424E+03    0.555700E+00    0.254512E+04
    0.479153E+06   -0.832377E+02
    0.938814E+03    0.549663E+00    0.253842E+04
    0.472698E+06   -0.945328E+02
    0.926192E+03    0.543678E+00    0.253171E+04
    0.466316E+06   -0.105838E+03
 );
 LEXACT = LEXACT ET ( PROG 
    0.913559E+03    0.537746E+00    0.252500E+04
    0.460006E+06   -0.117153E+03
    0.900915E+03    0.531866E+00    0.251829E+04
    0.453767E+06   -0.128478E+03
    0.888259E+03    0.526038E+00    0.251158E+04
    0.447599E+06   -0.139812E+03
    0.875591E+03    0.520262E+00    0.250487E+04
    0.441502E+06   -0.151157E+03
 );
 LEXACT = LEXACT ET ( PROG 
    0.862912E+03    0.514536E+00    0.249817E+04
    0.435474E+06   -0.162512E+03
    0.850221E+03    0.508862E+00    0.249146E+04
    0.429514E+06   -0.173877E+03
    0.837518E+03    0.503237E+00    0.248475E+04
    0.423623E+06   -0.185251E+03
    0.824804E+03    0.497663E+00    0.247804E+04
    0.417800E+06   -0.196636E+03
 );
 LEXACT = LEXACT ET ( PROG 
    0.812078E+03    0.492139E+00    0.247133E+04
    0.412044E+06   -0.208031E+03
    0.799340E+03    0.486664E+00    0.246462E+04
    0.406354E+06   -0.219435E+03
    0.786591E+03    0.481238E+00    0.245792E+04
    0.400729E+06   -0.230850E+03
    0.773830E+03    0.475861E+00    0.245121E+04
    0.395170E+06   -0.242275E+03
 );
 LEXACT = LEXACT ET ( PROG 
    0.761057E+03    0.470532E+00    0.244450E+04
    0.389676E+06   -0.253710E+03
    0.748272E+03    0.465251E+00    0.243779E+04
    0.384245E+06   -0.265156E+03
    0.735475E+03    0.460018E+00    0.243108E+04
    0.378878E+06   -0.276611E+03
    0.722666E+03    0.454833E+00    0.242437E+04
    0.373574E+06   -0.288077E+03
 );
 LEXACT = LEXACT ET ( PROG 
    0.709845E+03    0.449695E+00    0.241767E+04
    0.368331E+06   -0.299552E+03
    0.697013E+03    0.444603E+00    0.241096E+04
    0.363150E+06   -0.311038E+03
    0.684168E+03    0.439558E+00    0.240425E+04
    0.358031E+06   -0.322535E+03
    0.671311E+03    0.434559E+00    0.239754E+04
    0.352972E+06   -0.334041E+03
 );
 LEXACT = LEXACT ET ( PROG 
    0.658443E+03    0.429606E+00    0.239083E+04
    0.347972E+06   -0.345558E+03
    0.645562E+03    0.424699E+00    0.238412E+04
    0.343032E+06   -0.357085E+03
    0.632669E+03    0.419837E+00    0.237742E+04
    0.338151E+06   -0.368622E+03
    0.619764E+03    0.415019E+00    0.237071E+04
    0.333327E+06   -0.380170E+03
 );
 LEXACT = LEXACT ET ( PROG 
    0.606847E+03    0.410247E+00    0.236400E+04
    0.328562E+06   -0.391728E+03
    0.593918E+03    0.405518E+00    0.235729E+04
    0.323853E+06   -0.403296E+03
    0.580976E+03    0.400834E+00    0.235058E+04
    0.319201E+06   -0.414875E+03
    0.561059E+03    0.400834E+00    0.235058E+04
    0.319201E+06   -0.414875E+03
 );
 LEXACT = LEXACT ET ( PROG 
    0.541142E+03    0.400834E+00    0.235058E+04
    0.319201E+06   -0.414875E+03
    0.521225E+03    0.400834E+00    0.235058E+04
    0.319201E+06   -0.414875E+03
    0.501308E+03    0.400834E+00    0.235058E+04
    0.319201E+06   -0.414875E+03
    0.481391E+03    0.400834E+00    0.235058E+04
    0.319201E+06   -0.414875E+03
 );
 LEXACT = LEXACT ET ( PROG 
    0.461474E+03    0.400834E+00    0.235058E+04
    0.319201E+06   -0.414875E+03
    0.441557E+03    0.400834E+00    0.235058E+04
    0.319201E+06   -0.414875E+03
    0.421640E+03    0.400834E+00    0.235058E+04
    0.319201E+06   -0.414875E+03
    0.401723E+03    0.400834E+00    0.235058E+04
    0.319201E+06   -0.414875E+03
 );
 LEXACT = LEXACT ET ( PROG 
    0.381806E+03    0.400834E+00    0.235058E+04
    0.319201E+06   -0.414875E+03
    0.361889E+03    0.400834E+00    0.235058E+04
    0.319201E+06   -0.414875E+03
    0.341972E+03    0.400834E+00    0.235058E+04
    0.319201E+06   -0.414875E+03
    0.322055E+03    0.400834E+00    0.235058E+04
    0.319201E+06   -0.414875E+03
 );
 LEXACT = LEXACT ET ( PROG 
    0.302138E+03    0.400834E+00    0.235058E+04
    0.319201E+06   -0.414875E+03
    0.282221E+03    0.400834E+00    0.235058E+04
    0.319201E+06   -0.414875E+03
    0.262304E+03    0.400834E+00    0.235058E+04
    0.319201E+06   -0.414875E+03
    0.242387E+03    0.400834E+00    0.235058E+04
    0.319201E+06   -0.414875E+03
 );
 LEXACT = LEXACT ET ( PROG 
    0.222470E+03    0.400834E+00    0.235058E+04
    0.319201E+06   -0.414875E+03
    0.202552E+03    0.400834E+00    0.235058E+04
    0.319201E+06   -0.414875E+03
    0.182635E+03    0.400834E+00    0.235058E+04
    0.319201E+06   -0.414875E+03
    0.162718E+03    0.400834E+00    0.235058E+04
    0.319201E+06   -0.414875E+03
 );
 LEXACT = LEXACT ET ( PROG 
    0.142801E+03    0.400834E+00    0.235058E+04
    0.319201E+06   -0.414875E+03
    0.122884E+03    0.400834E+00    0.235058E+04
    0.319201E+06   -0.414875E+03
    0.102967E+03    0.400834E+00    0.235058E+04
    0.319201E+06   -0.414875E+03
    0.830503E+02    0.400834E+00    0.235058E+04
    0.319201E+06   -0.414875E+03
 );
 LEXACT = LEXACT ET ( PROG 
    0.631333E+02    0.400834E+00    0.235058E+04
    0.319201E+06   -0.414875E+03
    0.432163E+02    0.400834E+00    0.235058E+04
    0.319201E+06   -0.414875E+03
    0.232993E+02    0.400834E+00    0.235058E+04
    0.319201E+06   -0.414875E+03
    0.338225E+01    0.400834E+00    0.235058E+04
    0.319201E+06   -0.414875E+03
 );
 LEXACT = LEXACT ET ( PROG 
   -0.165348E+02    0.400834E+00    0.235058E+04
    0.319201E+06   -0.414875E+03
   -0.364518E+02    0.400834E+00    0.235058E+04
    0.319201E+06   -0.414875E+03
   -0.563688E+02    0.400834E+00    0.235058E+04
    0.319201E+06   -0.414875E+03
   -0.762858E+02    0.400834E+00    0.235058E+04
    0.319201E+06   -0.414875E+03
 );
 LEXACT = LEXACT ET ( PROG 
   -0.962029E+02    0.400834E+00    0.235058E+04
    0.319201E+06   -0.414875E+03
   -0.116120E+03    0.400834E+00    0.235058E+04
    0.319201E+06   -0.414875E+03
   -0.136037E+03    0.400834E+00    0.235058E+04
    0.319201E+06   -0.414875E+03
   -0.155954E+03    0.400834E+00    0.235058E+04
    0.319201E+06   -0.414875E+03
 );
 LEXACT = LEXACT ET ( PROG 
   -0.175871E+03    0.400834E+00    0.235058E+04
    0.319201E+06   -0.414875E+03
   -0.195788E+03    0.400834E+00    0.235058E+04
    0.319201E+06   -0.414875E+03
   -0.215705E+03    0.400834E+00    0.235058E+04
    0.319201E+06   -0.414875E+03
   -0.235622E+03    0.400834E+00    0.235058E+04
    0.319201E+06   -0.414875E+03
 );
 LEXACT = LEXACT ET ( PROG 
   -0.255539E+03    0.400834E+00    0.235058E+04
    0.319201E+06   -0.414875E+03
   -0.275456E+03    0.400834E+00    0.235058E+04
    0.319201E+06   -0.414875E+03
   -0.295373E+03    0.400834E+00    0.235058E+04
    0.319201E+06   -0.414875E+03
   -0.315290E+03    0.400834E+00    0.235058E+04
    0.319201E+06   -0.414875E+03
 );
 LEXACT = LEXACT ET ( PROG 
   -0.335207E+03    0.400834E+00    0.235058E+04
    0.319201E+06   -0.414875E+03
   -0.355124E+03    0.400834E+00    0.235058E+04
    0.319201E+06   -0.414875E+03
   -0.375041E+03    0.400834E+00    0.235058E+04
    0.319201E+06   -0.414875E+03
   -0.394958E+03    0.400834E+00    0.235058E+04
    0.319201E+06   -0.414875E+03
 );
 LEXACT = LEXACT ET ( PROG 
   -0.414875E+03    0.307434E+00    0.306470E+04
    0.319201E+06   -0.414875E+03
   -0.433363E+03    0.307434E+00    0.306470E+04
    0.319201E+06   -0.414875E+03
   -0.451850E+03    0.307434E+00    0.306470E+04
    0.319201E+06   -0.414875E+03
   -0.470338E+03    0.307434E+00    0.306470E+04
    0.319201E+06   -0.414875E+03
 );
 LEXACT = LEXACT ET ( PROG 
   -0.488825E+03    0.307434E+00    0.306470E+04
    0.319201E+06   -0.414875E+03
   -0.507313E+03    0.307434E+00    0.306470E+04
    0.319201E+06   -0.414875E+03
   -0.525800E+03    0.307434E+00    0.306470E+04
    0.319201E+06   -0.414875E+03
   -0.544288E+03    0.307434E+00    0.306470E+04
    0.319201E+06   -0.414875E+03
 );
 LEXACT = LEXACT ET ( PROG 
   -0.562775E+03    0.307434E+00    0.306470E+04
    0.319201E+06   -0.414875E+03
   -0.581263E+03    0.307434E+00    0.306470E+04
    0.319201E+06   -0.414875E+03
   -0.599750E+03    0.307434E+00    0.306470E+04
    0.319201E+06   -0.414875E+03
   -0.618238E+03    0.307434E+00    0.306470E+04
    0.319201E+06   -0.414875E+03
 );
 LEXACT = LEXACT ET ( PROG 
   -0.636725E+03    0.307434E+00    0.306470E+04
    0.319201E+06   -0.414875E+03
   -0.655213E+03    0.307434E+00    0.306470E+04
    0.319201E+06   -0.414875E+03
   -0.673700E+03    0.307434E+00    0.306470E+04
    0.319201E+06   -0.414875E+03
   -0.692188E+03    0.307434E+00    0.306470E+04
    0.319201E+06   -0.414875E+03
 );
 LEXACT = LEXACT ET ( PROG 
   -0.710675E+03    0.307434E+00    0.306470E+04
    0.319201E+06   -0.414875E+03
   -0.729163E+03    0.307434E+00    0.306470E+04
    0.319201E+06   -0.414875E+03
   -0.747650E+03    0.307434E+00    0.306470E+04
    0.319201E+06   -0.414875E+03
   -0.766138E+03    0.307434E+00    0.306470E+04
    0.319201E+06   -0.414875E+03
 );
 LEXACT = LEXACT ET ( PROG 
   -0.784625E+03    0.307434E+00    0.306470E+04
    0.319201E+06   -0.414875E+03
   -0.803113E+03    0.307434E+00    0.306470E+04
    0.319201E+06   -0.414875E+03
   -0.821600E+03    0.307434E+00    0.306470E+04
    0.319201E+06   -0.414875E+03
   -0.840088E+03    0.307434E+00    0.306470E+04
    0.319201E+06   -0.414875E+03
 );
 LEXACT = LEXACT ET ( PROG 
   -0.858575E+03    0.307434E+00    0.306470E+04
    0.319201E+06   -0.414875E+03
   -0.877063E+03    0.307434E+00    0.306470E+04
    0.319201E+06   -0.414875E+03
   -0.895551E+03    0.307434E+00    0.306470E+04
    0.319201E+06   -0.414875E+03
   -0.914038E+03    0.307434E+00    0.306470E+04
    0.319201E+06   -0.414875E+03
 );
 LEXACT = LEXACT ET ( PROG 
   -0.932526E+03    0.307434E+00    0.306470E+04
    0.319201E+06   -0.414875E+03
   -0.951013E+03    0.307434E+00    0.306470E+04
    0.319201E+06   -0.414875E+03
   -0.969501E+03    0.307434E+00    0.306470E+04
    0.319201E+06   -0.414875E+03
   -0.987988E+03    0.307434E+00    0.306470E+04
    0.319201E+06   -0.414875E+03
 );
 LEXACT = LEXACT ET ( PROG 
   -0.100648E+04    0.307434E+00    0.306470E+04
    0.319201E+06   -0.414875E+03
   -0.102496E+04    0.307434E+00    0.306470E+04
    0.319201E+06   -0.414875E+03
   -0.104345E+04    0.307434E+00    0.306470E+04
    0.319201E+06   -0.414875E+03
   -0.106194E+04    0.307434E+00    0.306470E+04
    0.319201E+06   -0.414875E+03
 );
 LEXACT = LEXACT ET ( PROG 
   -0.108043E+04    0.307434E+00    0.306470E+04
    0.319201E+06   -0.414875E+03
   -0.109891E+04    0.307434E+00    0.306470E+04
    0.319201E+06   -0.414875E+03
   -0.111740E+04    0.307434E+00    0.306470E+04
    0.319201E+06   -0.414875E+03
   -0.113589E+04    0.307434E+00    0.306470E+04
    0.319201E+06   -0.414875E+03
 );
 LEXACT = LEXACT ET ( PROG 
   -0.115438E+04    0.307434E+00    0.306470E+04
    0.319201E+06   -0.414875E+03
   -0.117286E+04    0.307434E+00    0.306470E+04
    0.319201E+06   -0.414875E+03
   -0.119135E+04    0.307434E+00    0.306470E+04
    0.319201E+06   -0.414875E+03
   -0.120984E+04    0.307434E+00    0.306470E+04
    0.319201E+06   -0.414875E+03
 );
 LEXACT = LEXACT ET ( PROG 
   -0.122833E+04    0.307434E+00    0.306470E+04
    0.319201E+06   -0.414875E+03
   -0.124681E+04    0.307434E+00    0.306470E+04
    0.319201E+06   -0.414875E+03
   -0.126530E+04    0.307434E+00    0.306470E+04
    0.319201E+06   -0.414875E+03
   -0.128379E+04    0.307434E+00    0.306470E+04
    0.319201E+06   -0.414875E+03
 );
 LEXACT = LEXACT ET ( PROG 
   -0.130228E+04    0.307434E+00    0.306470E+04
    0.319201E+06   -0.414875E+03
   -0.132076E+04    0.307434E+00    0.306470E+04
    0.319201E+06   -0.414875E+03
   -0.133925E+04    0.212196E+00    0.280015E+04
    0.201300E+06    0.000000E+00
   -0.134991E+04    0.212196E+00    0.280015E+04
    0.201300E+06    0.000000E+00
 );
 LEXACT = LEXACT ET ( PROG 
   -0.136057E+04    0.212196E+00    0.280015E+04
    0.201300E+06    0.000000E+00
   -0.137123E+04    0.212196E+00    0.280015E+04
    0.201300E+06    0.000000E+00
   -0.138189E+04    0.212196E+00    0.280015E+04
    0.201300E+06    0.000000E+00
   -0.139255E+04    0.212196E+00    0.280015E+04
    0.201300E+06    0.000000E+00
 );
 LEXACT = LEXACT ET ( PROG 
   -0.140321E+04    0.212196E+00    0.280015E+04
    0.201300E+06    0.000000E+00
   -0.141387E+04    0.212196E+00    0.280015E+04
    0.201300E+06    0.000000E+00
   -0.142453E+04    0.212196E+00    0.280015E+04
    0.201300E+06    0.000000E+00
   -0.143519E+04    0.212196E+00    0.280015E+04
    0.201300E+06    0.000000E+00
 );
 LEXACT = LEXACT ET ( PROG 
   -0.144585E+04    0.212196E+00    0.280015E+04
    0.201300E+06    0.000000E+00
   -0.145651E+04    0.212196E+00    0.280015E+04
    0.201300E+06    0.000000E+00
   -0.146717E+04    0.212196E+00    0.280015E+04
    0.201300E+06    0.000000E+00
   -0.147783E+04    0.212196E+00    0.280015E+04
    0.201300E+06    0.000000E+00
 );
 LEXACT = LEXACT ET ( PROG 
   -0.148849E+04    0.212196E+00    0.280015E+04
    0.201300E+06    0.000000E+00
   -0.149915E+04    0.212196E+00    0.280015E+04
    0.201300E+06    0.000000E+00
   -0.150981E+04    0.212196E+00    0.280015E+04
    0.201300E+06    0.000000E+00
   -0.152047E+04    0.212196E+00    0.280015E+04
    0.201300E+06    0.000000E+00
 );
 LEXACT = LEXACT ET ( PROG 
   -0.153113E+04    0.212196E+00    0.280015E+04
    0.201300E+06    0.000000E+00
   -0.154179E+04    0.212196E+00    0.280015E+04
    0.201300E+06    0.000000E+00
   -0.155245E+04    0.212196E+00    0.280015E+04
    0.201300E+06    0.000000E+00
   -0.156311E+04    0.212196E+00    0.280015E+04
    0.201300E+06    0.000000E+00
 );
 LEXACT = LEXACT ET ( PROG 
   -0.157377E+04    0.212196E+00    0.280015E+04
    0.201300E+06    0.000000E+00
   -0.158443E+04    0.212196E+00    0.280015E+04
    0.201300E+06    0.000000E+00
   -0.159509E+04    0.212196E+00    0.280015E+04
    0.201300E+06    0.000000E+00
   -0.160575E+04    0.212196E+00    0.280015E+04
    0.201300E+06    0.000000E+00
 );
 LEXACT = LEXACT ET ( PROG 
   -0.161641E+04    0.212196E+00    0.280015E+04
    0.201300E+06    0.000000E+00
   -0.162707E+04    0.212196E+00    0.280015E+04
    0.201300E+06    0.000000E+00
   -0.163773E+04    0.212196E+00    0.280015E+04
    0.201300E+06    0.000000E+00
   -0.164838E+04    0.212196E+00    0.280015E+04
    0.201300E+06    0.000000E+00
 );
 LEXACT = LEXACT ET ( PROG 
   -0.165904E+04    0.212196E+00    0.280015E+04
    0.201300E+06    0.000000E+00
   -0.166970E+04    0.212196E+00    0.280015E+04
    0.201300E+06    0.000000E+00
   -0.168036E+04    0.212196E+00    0.280015E+04
    0.201300E+06    0.000000E+00
   -0.169102E+04    0.212196E+00    0.280015E+04
    0.201300E+06    0.000000E+00
 );
 LEXACT = LEXACT ET ( PROG 
   -0.170168E+04    0.212196E+00    0.280015E+04
    0.201300E+06    0.000000E+00
   -0.171234E+04    0.212196E+00    0.280015E+04
    0.201300E+06    0.000000E+00
   -0.172300E+04    0.212196E+00    0.280015E+04
    0.201300E+06    0.000000E+00
   -0.173366E+04    0.212196E+00    0.280015E+04
    0.201300E+06    0.000000E+00
 );
 LEXACT = LEXACT ET ( PROG 
   -0.174432E+04    0.212196E+00    0.280015E+04
    0.201300E+06    0.000000E+00
   -0.175498E+04    0.212196E+00    0.280015E+04
    0.201300E+06    0.000000E+00
   -0.176564E+04    0.212196E+00    0.280015E+04
    0.201300E+06    0.000000E+00
   -0.177630E+04    0.212196E+00    0.280015E+04
    0.201300E+06    0.000000E+00
 );
 LEXACT = LEXACT ET ( PROG 
   -0.178696E+04    0.212196E+00    0.280015E+04
    0.201300E+06    0.000000E+00
   -0.179762E+04    0.212196E+00    0.280015E+04
    0.201300E+06    0.000000E+00
   -0.180828E+04    0.212196E+00    0.280015E+04
    0.201300E+06    0.000000E+00
   -0.181894E+04    0.212196E+00    0.280015E+04
    0.201300E+06    0.000000E+00
 );
 LEXACT = LEXACT ET ( PROG 
   -0.182960E+04    0.212196E+00    0.280015E+04
    0.201300E+06    0.000000E+00
   -0.184026E+04    0.212196E+00    0.280015E+04
    0.201300E+06    0.000000E+00
   -0.185092E+04    0.212196E+00    0.280015E+04
    0.201300E+06    0.000000E+00
   -0.186158E+04    0.212196E+00    0.280015E+04
    0.201300E+06    0.000000E+00
 );
 aa = 'DIME' LEXACT ;
 LEX_XOT = 'LECT' 1 PAS 5 (aa '-' 4) ;
 LEX_XOT = 'EXTRAIRE' LEXACT LEX_XOT ;
 LEX_RHO = 'LECT' 2 PAS 5 (aa '-' 3) ;
 LEX_RHO = 'EXTRAIRE' LEXACT LEX_RHO ;
 LEX_T = 'LECT' 3 PAS 5 (aa '-' 2) ;
 LEX_T = 'EXTRAIRE' LEXACT LEX_T ;
 LEX_P = 'LECT' 4 PAS 5 (aa '-' 1) ;
 LEX_P = 'EXTRAIRE' LEXACT LEX_P ;
 LEX_U = 'LECT' 5 PAS 5 (aa '-' 0) ;
 LEX_U = 'EXTRAIRE' LEXACT LEX_U ;
* 
******************
**** PRIMCONS ****
******************
 'DEBPROC' PRIMCONS ;
 'ARGUMENT' PGAS*TABLE TN1*'CHPOINT ' TN2*'CHPOINT '
   PN1*'CHPOINT ' PN2*'CHPOINT ' VN1*'CHPOINT ' VN2*'CHPOINT ' ;
*
* ETHER = int_0^T cv(T') dT'           T <  TMAX
*       = int_0^TMAX cv(T') dT' '+'
*         cv(TMAX)                     T >= TMAX
 ESP1 = 'EXTRAIRE' (PGAS . 'SPECIES') 1 ;
* DY1 = y_i - y_f for the species 1 
 DY1 = (('EXTRAIRE' (PGAS . 'MASSFRA') 1) '-'
   ('EXTRAIRE' (PGAS . 'MASSFRA') 2)) ;
 COEF1 = ('EXTRAIRE' (PGAS . 'CHEMCOEF') 1) '*'
    (PGAS . ESP1 . 'W') ;
 YFINPH1 = 1.0 ;
 YFINPH2 = 1.0 ;
 'SI' (COEF1 > 0) ;
    YPH2 = 'EXTRAIRE' (PGAS . 'MASSFRA') 2 ;
    YPH1 = YPH2 '+' DY1 ;
 'SINON' ;
    YPH1 = 'EXTRAIRE' (PGAS . 'MASSFRA') 2 ;
    YPH2 = YPH1 '-' DY1 ;
 'FINSI' ;
 YFINPH1 = YFINPH1 '-' YPH1 ;
 YFINPH2 = YFINPH2 '-' YPH2 ;
 PRYPH1 = 'PROG' YPH1 ;
 PRYPH2 = 'PROG' YPH2 ;
 'REPETER' BLESP (('DIME' (PGAS . 'SPECIES')) '-' 2) ;
    ESP = 'EXTRAIRE' (PGAS . 'SPECIES') (&BLESP '+' 1)  ;
    COEF = ('EXTRAIRE' (PGAS . 'CHEMCOEF') (&BLESP '+' 1)) 
       '*' (PGAS . ESP . 'W') ;
    DY = (DY1 * (COEF '/' COEF1)) ;
    'SI' (COEF > 0) ;
       YPH2 = 'EXTRAIRE' (PGAS . 'MASSFRA') (&BLESP '+' 2) ;
       YPH1 = YPH2 '+' DY ;
    'SINON' ;
       YPH1 = 'EXTRAIRE' (PGAS . 'MASSFRA') (&BLESP '+' 2) ;
       YPH2 = YPH1 '-' DY ;
    'FINSI' ;
    PRYPH1 = PRYPH1 'ET' ('PROG' YPH1) ;
    PRYPH2 = PRYPH2 'ET' ('PROG' YPH2) ;
    YFINPH1 = YFINPH1 '-' YPH1 ;
    YFINPH2 = YFINPH2 '-' YPH2 ;
 'FIN' BLESP ;
 PRYPH1 = PRYPH1 'ET' ('PROG' YFINPH1) ; 
 PRYPH2 = PRYPH2 'ET' ('PROG' YFINPH2) ;
* 'LISTE' PRYPH1 ;
* 'LISTE' PRYPH2 ; 
*
 TMAX = (PGAS . 'TMAX') ;
* TCAL1 = MIN TN1, TMAX 
 TCAL1 = 0.5D0 '*' ((TMAX '+' TN1) '-' ('ABS' (TN1 '-' TMAX))) ;
 DTN1 = TN1 '-' TCAL1 ;
* TCAL1 = MIN TN1, TMAX 
 TCAL2 = 0.5D0 '*' ((TMAX '+' TN2) '-' ('ABS' (TN2 '-' TMAX))) ;
 DTN2 = TN2 '-' TCAL2 ;
*
* Internal energy (J/kg in SI)
*
 ETHER1 = 0.0 ;
 CV1 = 0.0 ;
 ETHER2 = 0.0 ;
 CV2 = 0.0 ;
 FUNTN1 = 1.0 ;
 FUNTN2 = 1.0 ;
 'REPETER' BLPO ((PGAS . 'NORD') '+' 1) ;
    'REPETER' BLESP ('DIME' (PGAS . 'SPECIES')) ;
       ESP = 'EXTRAIRE' (PGAS . 'SPECIES') &BLESP ;
       YCEL1 = 'EXTRAIRE' PRYPH1 &BLESP ;
       YCEL2 = 'EXTRAIRE' PRYPH2 &BLESP ;
       AA = 'EXTRAIRE' (PGAS . ESP . 'A') &BLPO ;
       DCV1 = (AA * YCEL1 * FUNTN1) ;
       DCV2 = (AA * YCEL2 * FUNTN2) ;
       CV1 = CV1 '+' DCV1 ;
       CV2 = CV2 '+' DCV2 ;
       ETHER1 = ETHER1 '+' (DCV1 * TCAL1 '/' (&BLPO)) ;
       ETHER2 = ETHER2 '+' (DCV2 * TCAL2 '/' (&BLPO)) ;
    'FIN' BLESP ;
    FUNTN1 = FUNTN1 '*' TCAL1 ;
    FUNTN2 = FUNTN2 '*' TCAL2 ;
 'FIN' BLPO ;
 ETHER1 = ETHER1 '+' (CV1 '*' DTN1) ;
 ETHER2 = ETHER2 '+' (CV2 '*' DTN2) ;
*
* Formation energy/enthalpy (J/kg in SI) and gas constant (J/kg/K)
*
 EFORM1 = 0.0 ;
 EFORM2 = 0.0 ;
 RGAS1 = 0.0 ;
 RGAS2 = 0.0 ;
 'REPETER' BLESP ('DIME' (PGAS . 'SPECIES')) ;
    ESP = 'EXTRAIRE' (PGAS . 'SPECIES') &BLESP ;
    YCEL1 = 'EXTRAIRE' PRYPH1 &BLESP ;
    YCEL2 = 'EXTRAIRE' PRYPH2 &BLESP ;
    EFORM1 = EFORM1 '+' (YCEL1 * (PGAS . ESP . 'H0K')) ;
    EFORM2 = EFORM2 '+' (YCEL2 * (PGAS . ESP . 'H0K')) ;
    RGAS1 = RGAS1 '+' (YCEL1 *  (PGAS . 'RUNIV') '/' 
      (PGAS . ESP . 'W')) ;
    RGAS2 = RGAS2 '+' (YCEL2 *  (PGAS . 'RUNIV') '/' 
      (PGAS . ESP . 'W')) ;
 'FIN' BLESP ;
*
* Computation of the conservative variables
*
 RN1 = PN1 '/' (RGAS1 '*' TN1) ;
 RN2 = PN2 '/' (RGAS2 '*' TN2) ;
 GN1 = RN1 * VN1 ;
 GN2 = RN2 * VN2 ;
 LVEL = 'MOTS' 'UX' 'UY' 'UZ' ;
 ECIN1 = 0.5D0 '*' ('PSCAL' VN1 VN1 LVEL LVEL) ;
 ECIN2 = 0.5D0 '*' ('PSCAL' VN2 VN2 LVEL LVEL) ;
 RETN1 = RN1 '*' (ETHER1 '+' ECIN1 '+' EFORM1) ; 
 RETN2 = RN2 '*' (ETHER2 '+' ECIN2 '+' EFORM2) ;
*
 'RESPRO' RN1 RN2 GN1 GN2 RETN1 RETN2 ;
 'FINPROC' ;

* 
****************************************************************
*****      1D mesh                                         *****
****************************************************************
*
*
*   A4 ------------------- A5 ----------------------- A6
*   |                       |                         |
*   |        ZONE1          |         ZONE2           |
*   |                       |                         |
*   A1 ------------------- A2 ----------------------- A3
*   |                       |                         |
*   |          L1           |           L2            |
*  >|<--------------------->|<----------------------->|
*
*  AR = activation region
*  ZONE1
*  ZONE2
*

 RAF = 200  ;
 
 L1 = 1. ;
 L2 = 1. ;

 DX = L1 '/' RAF ;
 N1 = RAF ;
 N2 = 'ENTIER' ((L2 '/' DX) '+' 0.5) ;

* For sake of simplicity, we will only consider NY mesh in y-direction

 NY = 1 ;
 H1 = NY '*' DX ;

 A1 = 0.0 0.0 ;
 A2 = L1 0.0 ;
 A3 = (L1 '+' L2) 0.0 ;
 A4 = 0.0 H1 ;
 A5 = L1  H1 ;
 A6 = (L1 '+' L2) H1 ;
* 
 'OPTION' 'ELEM' 'SEG2' ;
 A1A2 = A1 'DROIT' N1 A2 ;
 A2A3 = A2 'DROIT' N2 A3 ;
 A4A5 = A4 'DROIT' N1 A5 ;
 A5A6 = A5 'DROIT' N2 A6 ;
*
 A1A4 = A1 'DROIT' NY A4 ;
 A2A5 = A2 'DROIT' NY A5 ;
 A3A6 = A3 'DROIT' NY A6 ;
*
*
**** 2D mesh
*
* DOM1 is zone 1
* DOM3 is zone 2
*
 'OPTION' 'ELEM' 'QUA4' ;
 DOM1 = 'DALLER' A1A2 A2A5 ('INVERSE' A4A5) ('INVERSE' A1A4) ;
 DOM2 = 'DALLER' A2A3 A3A6 ('INVERSE' A5A6) ('INVERSE' A2A5) ;
 LIMG = A1A4 ;
 LIMD = A3A6 ;
*
* DOMTOT = total region
*
 DOMTOT = DOM1 'ET' DOM2 ;
 'ELIMINATION' (1.0D-3 '*' DX) DOMTOT ;
 DOMLIM = 'CONTOUR' DOMTOT ;
*
**** The tables 'DOMAINE'
*
 $DOMTOT = 'MODELISER' DOMTOT 'EULER' ;
 $DOMLIM = 'MODELISER' DOMLIM 'EULER' ;
 $DOM1   = 'MODELISER' DOM1 'EULER' ;
 $DOM2   = 'MODELISER' DOM2 'EULER' ;
 $LIMG   = 'MODELISER' LIMG 'EULER' ;
 $LIMD   = 'MODELISER' LIMD 'EULER' ;
* 
 TDOMTOT = 'DOMA' $DOMTOT 'VF' ;
 TDOMLIM = 'DOMA' $DOMLIM 'VF' ;
 TDOM1   = 'DOMA' $DOM1   'VF' ;
 TDOM2   = 'DOMA' $DOM2   'VF' ;
 TLIMG   = 'DOMA' $LIMG   'VF' ;
 TLIMD   = 'DOMA' $LIMD   'VF' ;
* 
 QDOMTOT = TDOMTOT  . 'QUAF' ;
 QDOMLIM = TDOMLIM  . 'QUAF' ;
 QDOM1   = TDOM1    . 'QUAF' ;
 QDOM2   = TDOM2    . 'QUAF' ;
 QLIMG   = TLIMG    . 'QUAF' ;
 QLIMD   = TLIMD    . 'QUAF' ;
*
 'ELIMINATION' QDOMTOT (0.001 '*' DX) QDOMLIM ;
 'ELIMINATION' QDOMTOT (0.001 '*' DX) QDOM1 ;
 'ELIMINATION' QDOMTOT (0.001 '*' DX) QDOM2 ;
 'ELIMINATION' QDOMTOT (0.001 '*' DX) QLIMG ;
 'ELIMINATION' QDOMTOT (0.001 '*' DX) QLIMD ;
*
**** MOD1 = model (created just to display the CHAMELEMs)
*
 MOD1 =  'MODELISER'  ('DOMA' $DOMTOT 'MAILLAGE') 'THERMIQUE' ;
*
**** Line for graphics
*
 'OPTION' 'ELEM' 'SEG2' ;
 LIMCON = 'MANUEL' 'QUA4'
    (A1 'PLUS' ((0.25 * DX) (0.25 * DX)))
    (A3 'PLUS' ((-0.25 * DX) (0.25 * DX)))
    (A3 'PLUS' ((-0.25 * DX) (0.75 * DX)))
    (A1 'PLUS' ((0.25 * DX) (0.75 * DX))) ;
 LIMCON = LIMCON 'COULEUR' ROUG ;
* 
 LIGEVO = (TDOMTOT . 'CENTRE') 'INCL' LIMCON ;
 P1 = 'POIN' (COOR 1 LIGEVO) 'MINIMUM' ;
 'ORDONNER' LIGEVO P1 ;
 LIGEVO = 'QUELCONQUE' 'SEG2' LIGEVO 'COULEUR' 'VERT';
 'SI' GRAPH ;
    'TRACER' (LIMCON 'ET' QDOMTOT 'ET' LIGEVO) ;
 'FINSI' ;

* 'OPTION' 'SAUVER' ('CHAINE' 'mesh.sauv_raf' RAF) ;
* 'SAUVER' RAF DOMTOT $DOMTOT $DOM1 $DOM2 $DOM3 LIGEVO MOD1 ;

****************************************************************
****************************************************************
*****      Initial conditions and gas properties.          *****
****************************************************************
****************************************************************
*
*************************************************
**** The table for the properties of the gas ****
*************************************************
*
 PGAS = 'TABLE' ;
*
**** Order of the polynomial order for cv = cv(T) 
*    For T > TMAX, cv(T) = cv(Tmax)
* 
 PGAS . 'TMAX' = 6000.0 ;
 PGAS . 'NORD' = 4 ;
*
**** Species involved in the mixture (before or after
*    the chemical reaction)
*
 PGAS . 'SPECIES' = 'MOTS' 'H2  ' 'O2  ' 'H2O ' 'N2  ' ;
*
*
**** Coefficient of the chemical reaction.
*    Note that for the first species this coefficient should be positive
*    Normal, we take it equal to 1.
*
*    H2 '+' 0.5 O2 ---> H2O
*
 PGAS . 'CHEMCOEF' = 'PROG' 1.0 0.5 -1.0 0.0 ;
* 
**** Mass fraction of the first species before and after the combustion
*    Final mass fractions of the species with positive coefficients.
*    Final mass fractions of the species with non-positive coefficient.
*    The mass fraction of the last species is not given.
*
 PGAS . 'MASSFRA' = 'PROG' 0.285219E-01  0.964039E-11  0.765104E-10
                           0.127442E-10 ;
 PGAS . 'MASSFRA' = 'PROG' 0.285219E-01  0.964039E-11  0.765104E-10
                           0.127442E-10 ;
*
**** Coef with the gas properties
*
 PGAS .  'H2  ' = 'TABLE'  ;
 PGAS .  'H2O ' = 'TABLE'  ;
 PGAS .  'N2  ' = 'TABLE'  ;
 PGAS .  'O2  ' = 'TABLE'  ;
*
**** Runiv (J/mole/K)
*
 PGAS . 'RUNIV' = 8.31441 ;
*
**** W (kg/mole). Gas constant (J/kg/K = Runiv/W)
*
 PGAS .  'H2  ' . 'W' =  2. * 1.00797E-3 ;
 PGAS .  'O2  ' . 'W' =  2. * 15.9994E-3 ;
 PGAS .  'H2O ' . 'W' = (PGAS .  'H2  ' . 'W' ) '+'
    (0.5 * (PGAS .  'O2  ' . 'W' )) ;
 PGAS .  'N2  ' . 'W' = 2 * 14.0067E-3 ;
*
**** Polynomial coefficients 
*
 PGAS .  'H2  ' . 'A' = 'PROG'  9834.91866 0.54273926 0.000862203836
                               -2.37281455E-07 1.84701105E-11 ;
 PGAS .  'H2O ' . 'A' = 'PROG' 1155.95625 0.768331151 -5.73129958E-05
                              -1.82753232E-08 2.44485692E-12 ;
 PGAS .  'N2  ' . 'A' = 'PROG' 652.940766 0.288239099 -7.80442298E-05
                              8.78233606E-09 -3.05514485E-13 ;
 PGAS .  'O2  ' . 'A' = 'PROG' 575.012333  0.350522002 -0.000128294865
                              2.33636971E-08 -1.53304905E-12;
*
**** Formation enthalpies (energies) at 0K (J/Kg)
*
 PGAS .  'H2  ' . 'H0K' = -4.195D6 ;
 PGAS .  'H2O ' . 'H0K' = -1.395D7 ;
 PGAS .  'N2  ' . 'H0K' = -2.953D5 ;
 PGAS .  'O2  ' . 'H0K' = -2.634D5 ;
*
*************************************************
**** The initial conditions *********************
*************************************************
*
 eps = 1.0D-64 ;
 CHK0 = 'MANUEL' 'CHPO' (TDOMTOT . 'CENTRE') 1 'SCAL' 200. ;
* 
 T1   = 293. ;
 alph11 = 1.0 '-' 1.0D-5 ;
 alph12 = 1.0D-5 ;
 alph21 = 1.0 '-' alph11 ;
 alph22 = 1.0 - alph12 ;
 T2   = 2800. ;
 un1  = 0.0 ;
 un2  = 0.0 ;
 ut1  = 0.0 ;
 ut2  = 0.0 ;
 pre1 = 1.013D5 ;
 pre2 = 2.013D5 ;
*
 CHVN1  = ('MANUEL' 'CHPO' (TDOMTOT . 'CENTRE') 2 'UX' un1
   'UY' ut1) ;
 CHVN2  = ('MANUEL' 'CHPO' (TDOMTOT . 'CENTRE') 2 'UX' un2
   'UY' ut2) ;
*
 CHTN1  = ('MANUEL' 'CHPO' (TDOMTOT . 'CENTRE') 1 'SCAL' T1) ;
 CHTN2  = ('MANUEL' 'CHPO' (TDOMTOT . 'CENTRE') 1 'SCAL' T2) ;
*
 CHPN1  = ('MANUEL' 'CHPO' (TDOMTOT . 'CENTRE') 1 'SCAL' pre1) ;
 CHPN2  = ('MANUEL' 'CHPO' (TDOMTOT . 'CENTRE') 1 'SCAL' pre2) ;
*
 CHAL1  = ('MANUEL' 'CHPO' (TDOM1 . 'CENTRE') 1 'SCAL'
   alph11) '+'
   ('MANUEL' 'CHPO' (TDOM2 . 'CENTRE') 1 'SCAL'
   alph12) ;
 CHAL2  = ('MANUEL' 'CHPO' (TDOM1 . 'CENTRE') 1 'SCAL'
   alph21) '+'
   ('MANUEL' 'CHPO' (TDOM2 . 'CENTRE') 1 'SCAL'
   alph22) ;
*
 CHRN1 CHRN2 CHGN1 CHGN2 CHRET1 CHRET2 = PRIMCONS
   PGAS CHTN1 CHTN2 CHPN1 CHPN2 CHVN1 CHVN2 ;
* 
 RN1 RN2 VN1 VN2 PN1 PN2 TN1 TN2 = 'PRIM' 'DEM' PGAS CHAL1 CHAL2
   (CHAL1 * CHRN1) (CHAL2 * CHRN2) (CHAL1 * CHGN1)
   (CHAL2 * CHGN2) (CHAL1 * CHRET1) (CHAL2 * CHRET2)
    CHTN1 CHTN2 EPS ;
 TN1M = COPIER TN1 ;
 TN2M = COPIER TN2 ;
*
 ERRO = 'MAXIMUM' (PRE1 '-' ('REDU' PN1 (TDOM1 . 'CENTRE'))) 'ABS' ;
 ERRO = ERRO '/' (pre1) ;
 'SI' (ERRO > 1.0D-6) ;
     'MESSAGE' ('CHAINE' 'Erreur PRIM ' ERRO);
     'ERREUR' 21 ;
 'FINSI' ; 
 ERRO = 'MAXIMUM' (PRE2 '-' ('REDU' PN2 (TDOM2 . 'CENTRE'))) 'ABS' ;
 ERRO = ERRO '/' (pre2) ;
 'SI' (ERRO > 1.0D-6) ;
     'MESSAGE' ('CHAINE' 'Erreur PRIM ' ERRO);
     'ERREUR' 21 ;
 'FINSI' ;
 ERRO = 'MAXIMUM' (T1 '-' ('REDU' TN1 (TDOM1 . 'CENTRE'))) 'ABS' ;
 ERRO = ERRO '/' (T1) ;
 'SI' (ERRO > 1.0D-6) ;
     'MESSAGE' ('CHAINE' 'Erreur PRIM ' ERRO);
     'ERREUR' 21 ;
 'FINSI' ;
 ERRO = 'MAXIMUM' (T2 '-' ('REDU' TN2 (TDOM2 . 'CENTRE'))) 'ABS' ;
 ERRO = ERRO '/' (T2) ;
 'SI' (ERRO > 1.0D-6) ;
     'MESSAGE' ('CHAINE' 'Erreur PRIM ' ERRO);
     'ERREUR' 21 ;
 'FINSI' ;
*
**** Parameter for the time loop 
*
*    Names of the residuum components
*
 LISTINCO = ('MOTS' 'ALF1' 'RN1' 'RNX1' 'RNY1' 'RET1'
          'ALF2' 'RN2' 'RNX2' 'RNY2' 'RET2') ;
*
**** BC
*
 KONLIM = 'DIFF' (TLIMG . 'CENTRE') (TLIMG . 'CENTRE') ;
 CHPVID CHMVID = 'KOPS' 'MATRIK' ;
 RESLIM = 'COPIER' CHPVID ;
 
* 
****************************************************************
****************************************************************
*****           Parameters for the computations           ******
****************************************************************
****************************************************************
* 
 
* Iterations
* Final time
* Safety Factor fot the time step
* Second order reconstruction?
* We compute the gradients during the correction or not ?

 NITER = 10000 ;
 TFINAL = 0.4D-3 ;
 SAFFAC = 0.5 ;
 LOGSO = VRAI ;
 LOGGRA = VRAI ;


* 'OPTION' 'SAUVER' 'parameters.sauv' ;
* 'SAUVER'  METO  NITER  TFINAL  SAFFAC LOGSO ;

****************************************************************
****************************************************************
*****           The computation                           ******
****************************************************************
****************************************************************

 AL1   = CHAL1          ;
 AL2   = CHAL2          ;
 ARN1  = CHAL1 * CHRN1  ;
 ARN2  = CHAL2 * CHRN2  ;
 AGN1  = CHAL1 * CHGN1  ;
 AGN2  = CHAL2 * CHGN2  ;
 AREN1 = CHAL1 * CHRET1 ;
 AREN2 = CHAL2 * CHRET2 ;
*
 AL10   =  'COPIER' AL1   ;
 AL20   =  'COPIER' AL2   ;
 ARN10  =  'COPIER' ARN1  ;
 ARN20  =  'COPIER' ARN2  ;
 AGN10  =  'COPIER' AGN1  ;
 AGN20  =  'COPIER' AGN2  ;
 AREN10 =  'COPIER' AREN1 ;
 AREN20 =  'COPIER' AREN2 ;
 TN10   =  'COPIER' TN1   ;
 TN20   =  'COPIER' TN2   ;
 
*
**** Geometrical coefficient to compute grad(alpha)/|grad(alpha)|
*

 EPSGR = 1.0D-6 ;
 CHPL1 = CHPVID ;
 CHPL2 = 'MANUEL' 'CHPO' (TDOMLIM . 'CENTRE') 2
         'P1DX' 0.0 'P1DY'  0.0 ;
 GRALP1 GRAL = 'PENT' $DOMTOT 'FACE'
     'DIAMAN2'  ('MOTS' 'SCAL') ('MOTS' 'P1DX' 'P1DY')
     AL1  CHPL1 CHPL2 ;
* 'SI' VRAI ;
*    V1 = 'VECTEUR'
*       ('NOMC' ('MOTS' 'P1DX' 'P1DY') GRALP1 ('MOTS' 'UX' 'UY')) ;
*    'TRACER' DOMTOT V1 DOMLIM ;
* 'FINSI' ;
 GRALP1 = GRALP1 '+' EPSGR ;
 GRALP1 = GRALP1 '/' (('PSCAL' GRALP1 GRALP1 ('MOTS' 'P1DX' 'P1DY')
    ('MOTS' 'P1DX' 'P1DY')) '**' 0.5) ;
* 'SI' VRAI ;
*    V1 = 'VECTEUR'
*       ('NOMC' ('MOTS' 'P1DX' 'P1DY') GRALP1 ('MOTS' 'UX' 'UY')) ;
*    'TRACER' DOMTOT V1 DOMLIM ;
* 'FINSI' ;
 
*
**** Geometrical coefficient to compute gradients
*
 GRADR0 ALR0 COEFSCAL =  'PENT' $DOMTOT 'CENTRE' 'EULESCAL' 'NOLIMITE'
          ('MOTS' 'SCAL') AL10 ;
 GRADR0 = GRADR0 * 0.0 ;
 ALR0   = ALR0   * 0.0 ;
          
 GRADV0 ALV0 COEFVECT =  'PENT' $DOMTOT 'CENTRE' 'EULEVECT' 'NOLIMITE'
          ('MOTS' 'UX' 'UY') AGN10 ;
 GRADV0 = GRADV0 * 0.0 ;
 ALV0   = ALV0   * 0.0 ;

 VINF1 = 'MANUEL' 'CHPO' (TDOMTOT . 'CENTRE') 1 'SCAL' 10. ;
 VINF2 = 'MANUEL' 'CHPO' (TDOMTOT . 'CENTRE') 1 'SCAL' 100. ;
*
**** Temporal loop
*

 TPS = 0.0 ;
 
 'MESSAGE' ;
 'MESSAGE' ('CHAINE' 'Methode = ' METO) ;
 'MESSAGE' ('CHAINE' 'SAFFAC      = ' SAFFAC) ;
 'MESSAGE' ;

 'TEMPS' 'ZERO' ;
 'REPETER' BLITER NITER ;

*
**** Primitive variables
*
    
    RN1 RN2 VN1 VN2 PN1 PN2 TN1 TN2 = 'PRIM' 'DEM' PGAS AL1 AL2
       ARN1 ARN2 AGN1 AGN2 AREN1 AREN2 TN1M TN2M EPS ;

    TN1M = 'COPIER' TN1 ;
    TN2M = 'COPIER' TN2 ;

**** Gradient of alpha

    GRALP1 = 'PENT' $DOMTOT 'FACE'
    'DIAMAN2'  ('MOTS' 'SCAL') ('MOTS' 'P1DX' 'P1DY')
        AL1  CHPL1 CHPL2 'GRADGEO' GRAL  ; 
*    'SI' VRAI ;
*       V1 = 'VECTEUR'
*          ('NOMC' ('MOTS' 'P1DX' 'P1DY') GRALP1 ('MOTS' 'UX' 'UY')) ;
*       'TRACER' DOMTOT V1 DOMLIM ;
*    'FINSI' ;
    GRALP1 = GRALP1 '+' EPSGR ;
    GRALP1 = GRALP1 '/' (('PSCAL' GRALP1 GRALP1 ('MOTS' 'P1DX' 'P1DY')
       ('MOTS' 'P1DX' 'P1DY')) '**' 0.5) ;
    
    'SI' LOGSO ;
    
       GRADA1 ALA1 = 'PENT' $DOMTOT 'CENTRE' 'EULESCAL' 'LIMITEUR'
          ('MOTS' 'SCAL') AL1  'GRADGEO' COEFSCAL ;
          
       GRADR1 ALR1 = 'PENT' $DOMTOT 'CENTRE' 'EULESCAL' 'LIMITEUR'
          ('MOTS' 'SCAL') RN1  'GRADGEO' COEFSCAL ;

       GRADP1 ALP1 = 'PENT' $DOMTOT 'CENTRE' 'EULESCAL' 'LIMITEUR'
          ('MOTS' 'SCAL') PN1  'GRADGEO' COEFSCAL ;

       GRADV1 ALV1 = 'PENT' $DOMTOT 'CENTRE' 'EULEVECT' 'LIMITEUR'
          ('MOTS' 'UX' 'UY') VN1   'GRADGEO'  COEFVECT ;
          
       GRADA2 ALA2 = 'PENT' $DOMTOT 'CENTRE' 'EULESCAL' 'LIMITEUR'
          ('MOTS' 'SCAL') AL2  'GRADGEO' COEFSCAL ;
          
       GRADR2 ALR2 = 'PENT' $DOMTOT 'CENTRE' 'EULESCAL' 'LIMITEUR'
          ('MOTS' 'SCAL') RN2  'GRADGEO' COEFSCAL ;

       GRADP2 ALP2 = 'PENT' $DOMTOT 'CENTRE' 'EULESCAL' 'LIMITEUR'
          ('MOTS' 'SCAL') PN2  'GRADGEO' COEFSCAL ;

       GRADV2 ALV2 = 'PENT' $DOMTOT 'CENTRE' 'EULEVECT' 'LIMITEUR'
          ('MOTS' 'UX' 'UY') VN2   'GRADGEO'  COEFVECT ;

       CHFAL1 CHFAL2 CHFRN1 CHFRN2 CHFVN1 CHFVN2 CHFPN1 CHFPN2 =
         'PRET' 'DEM'  $DOMTOT
          AL1  GRADA1  ALA1
          AL2  GRADA2  ALA2
*          AL1  GRADA1  ALR0
*          AL2  GRADA2  ALR0
          RN1  GRADR1  ALR1
          RN2  GRADR2  ALR2 
          VN1  GRADV1  ALV1
          VN2  GRADV2  ALV2
          PN1  GRADP1  ALP1
          PN2  GRADP2  ALP2 ;
                
    'SINON' ;
                              
       CHFAL1 CHFAL2 CHFRN1 CHFRN2 CHFVN1 CHFVN2 CHFPN1 CHFPN2 =
         'PRET' 'DEM'  $DOMTOT
          AL1  GRADR0  ALR0
          AL2  GRADR0  ALR0
          RN1  GRADR0  ALR0
          RN2  GRADR0  ALR0
          VN1  GRADV0  ALV0
          VN2  GRADV0  ALV0
          PN1  GRADR0  ALR0
          PN2  GRADR0  ALR0 ;

    'FINSI' ;

    SI ('EGA' METO 'AUSMPUP') ;
       RESIDU DELTAT SURF = 'KONV' 'VF' 'DEM' 'RESI' METO 'VARI'
          $DOMTOT PGAS LISTINCO AL1 AL2 CHFAL1 CHFAL2 CHFRN1 CHFRN2
          CHFVN1 CHFVN2 CHFPN1 CHFPN2 GRALP1 CHK0
          EPS KONLIM VINF1 VINF2 ;
    'SINON' ;
       RESIDU DELTAT SURF = 'KONV' 'VF' 'DEM' 'RESI'  METO 'VARI'
          $DOMTOT PGAS LISTINCO AL1 AL2 CHFAL1 CHFAL2 CHFRN1 CHFRN2
          CHFVN1 CHFVN2 CHFPN1 CHFPN2 GRALP1 CHK0 EPS KONLIM ;
    'FINSI' ;

    RESIDU = RESIDU '+' RESLIM ;
*    
*    'REPETER' BL1 ('DIME' LISTINCO) ;  
*       mot1 = 'EXTRAIRE' LISTINCO &BL1 ;
*       valre1 = 'MAXIMUM' ('EXCO' RESLIM mot1) 'ABS' ;
*       tit1 = 'CHAINE' 'Component ' mot1 ', reference value ' valre1 ;
*       evaa = 'EVOL' 'CHPO' RESIDU mot1  LIGEVO ;
*       'DESSIN' evaa 'TITRE' tit1 ;
*    'FIN' BL1 ;
 
*    'OPTION' DONN 5 ;
*   Problem with RNY1, RNY2
                              
    DT_CON = SAFFAC '*' DELTAT ;     
*
**** The time step linked to tps
*

    DTTPS = (TFINAL '-' TPS) * (1. '+' 1.0D-6) ;
    
*
**** Total time step
*

    DTMIN = 'MINIMUM' ('PROG' DT_CON DTTPS) ;

*
**** Increment of the variables (predictor)
*
*    RN1 RN2 VN1 VN2 PN1 PN2 TN1 TN2 = 'PRIM' 'DEM' PGAS AL1 AL2
*       ARN1 ARN2 AGN1 AGN2 AREN1 AREN2 CHTN1 CHTN2 EPS ;

    RESIDU = (0.5 * DTMIN) '*' RESIDU ;

    DALP1  = 'EXCO' 'ALF1' RESIDU 'SCAL' ;
    DRN1   = 'EXCO' 'RN1'  RESIDU 'SCAL' ;
    DGN1   = 'EXCO' ('MOTS' 'RNX1' 'RNY1') RESIDU ('MOTS' 'UX' 'UY') ;
    DRET1  = 'EXCO' 'RET1' RESIDU 'SCAL' ;
    DALP2  = 'EXCO' 'ALF2' RESIDU 'SCAL' ;
    DRN2   = 'EXCO' 'RN2'  RESIDU 'SCAL' ;
    DGN2   = 'EXCO' ('MOTS' 'RNX2' 'RNY2') RESIDU ('MOTS' 'UX' 'UY') ;
    DRET2  = 'EXCO' 'RET2' RESIDU 'SCAL' ;

    AL1B   = AL1   '+'  DALP1 ;
    ARN1B  = ARN1  '+'  DRN1  ;
    AGN1B  = AGN1  '+'  DGN1  ;
    AREN1B = AREN1 '+'  DRET1 ;
    AL2B   = AL2   '+'  DALP2 ;
    ARN2B  = ARN2  '+'  DRN2  ;
    AGN2B  = AGN2  '+'  DGN2  ;
    AREN2B = AREN2 '+'  DRET2 ;

*    
**** Corrector
*

    RN1 RN2 VN1 VN2 PN1 PN2 TN1 TN2 = 'PRIM' 'DEM' PGAS AL1B AL2B
       ARN1B ARN2B AGN1B AGN2B AREN1B AREN2B TN1M TN2M EPS ;

**** Gradient of alpha

    GRALP1 = 'PENT' $DOMTOT 'FACE'
    'DIAMAN2'  ('MOTS' 'SCAL') ('MOTS' 'P1DX' 'P1DY')
        AL1B  CHPL1 CHPL2 'GRADGEO' GRAL  ; 
*    'SI' VRAI ;
*       V1 = 'VECTEUR'
*          ('NOMC' ('MOTS' 'P1DX' 'P1DY') GRALP1 ('MOTS' 'UX' 'UY')) ;
*       'TRACER' DOMTOT V1 DOMLIM ;
*    'FINSI' ;
    GRALP1 = GRALP1 '+' EPSGR ;
    GRALP1 = GRALP1 '/' (('PSCAL' GRALP1 GRALP1 ('MOTS' 'P1DX' 'P1DY')
       ('MOTS' 'P1DX' 'P1DY')) '**' 0.5) ;
       
    'SI' LOGSO ;

       SI LOGGRA ;
       GRADA1 ALA1 = 'PENT' $DOMTOT 'CENTRE' 'EULESCAL' 'LIMITEUR'
          ('MOTS' 'SCAL') AL1B  'GRADGEO' COEFSCAL ;
          
       GRADR1 ALR1 = 'PENT' $DOMTOT 'CENTRE' 'EULESCAL' 'LIMITEUR'
          ('MOTS' 'SCAL') RN1  'GRADGEO' COEFSCAL ;

       GRADP1 ALP1 = 'PENT' $DOMTOT 'CENTRE' 'EULESCAL' 'LIMITEUR'
          ('MOTS' 'SCAL') PN1  'GRADGEO' COEFSCAL ;

       GRADV1 ALV1 = 'PENT' $DOMTOT 'CENTRE' 'EULEVECT' 'LIMITEUR'
          ('MOTS' 'UX' 'UY') VN1   'GRADGEO'  COEFVECT ;
          
       GRADA2 ALA2 = 'PENT' $DOMTOT 'CENTRE' 'EULESCAL' 'LIMITEUR'
          ('MOTS' 'SCAL') AL2B  'GRADGEO' COEFSCAL ;
          
       GRADR2 ALR2 = 'PENT' $DOMTOT 'CENTRE' 'EULESCAL' 'LIMITEUR'
          ('MOTS' 'SCAL') RN2  'GRADGEO' COEFSCAL ;

       GRADP2 ALP2 = 'PENT' $DOMTOT 'CENTRE' 'EULESCAL' 'LIMITEUR'
          ('MOTS' 'SCAL') PN2  'GRADGEO' COEFSCAL ;

       GRADV2 ALV2 = 'PENT' $DOMTOT 'CENTRE' 'EULEVECT' 'LIMITEUR'
          ('MOTS' 'UX' 'UY') VN2   'GRADGEO'  COEFVECT ;
       'FINSI' ;

       CHFAL1 CHFAL2 CHFRN1 CHFRN2 CHFVN1 CHFVN2 CHFPN1 CHFPN2 =
         'PRET' 'DEM'  $DOMTOT
          AL1B  GRADA1  ALA1
          AL2B  GRADA2  ALA2
*          AL1B  GRADA1  ALR0
*          AL2B  GRADA2  ALR0
          RN1  GRADR1  ALR1
          RN2  GRADR2  ALR2 
          VN1  GRADV1  ALV1
          VN2  GRADV2  ALV2
          PN1  GRADP1  ALP1
          PN2  GRADP2  ALP2 ;
                
    'SINON' ;
                              
       CHFAL1 CHFAL2 CHFRN1 CHFRN2 CHFVN1 CHFVN2 CHFPN1 CHFPN2 =
         'PRET' 'DEM'  $DOMTOT
          AL1B  GRADR0  ALR0
          AL2B  GRADR0  ALR0
          RN1  GRADR0  ALR0
          RN2  GRADR0  ALR0
          VN1  GRADV0  ALV0
          VN2  GRADV0  ALV0
          PN1  GRADR0  ALR0
          PN2  GRADR0  ALR0 ;

    'FINSI' ;

    SI ('EGA' METO 'AUSMPUP') ;
       RESIDU DELTAT SURF = 'KONV' 'VF' 'DEM' 'RESI' METO 'VARI'
          $DOMTOT PGAS LISTINCO AL1B AL2B CHFAL1 CHFAL2 CHFRN1 CHFRN2
          CHFVN1 CHFVN2 CHFPN1 CHFPN2 GRALP1 CHK0 EPS KONLIM
          VINF1 VINF2 ;
    'SINON' ;
       RESIDU DELTAT SURF = 'KONV' 'VF' 'DEM' 'RESI'  METO 'VARI'
          $DOMTOT PGAS LISTINCO AL1B AL2B CHFAL1 CHFAL2 CHFRN1 CHFRN2
          CHFVN1 CHFVN2 CHFPN1 CHFPN2 GRALP1 CHK0 EPS KONLIM ;
    'FINSI' ;

    RESIDU = RESIDU '+' RESLIM ;
*    
*    'REPETER' BL1 ('DIME' LISTINCO) ;  
*       mot1 = 'EXTRAIRE' LISTINCO &BL1 ;
*       valre1 = 'MAXIMUM' ('EXCO' RESLIM mot1) 'ABS' ;
*       tit1 = 'CHAINE' 'Component ' mot1 ', reference value ' valre1 ;
*       evaa = 'EVOL' 'CHPO' RESIDU mot1  LIGEVO ;
*       'DESSIN' evaa 'TITRE' tit1 ;
*    'FIN' BL1 ;
 
*    'OPTION' DONN 5 ;
*   Problem with RNY1, RNY2
                              

    RESIDU = DTMIN '*' RESIDU ;

    DALP1  = 'EXCO' 'ALF1' RESIDU 'SCAL' ;
    DRN1   = 'EXCO' 'RN1'  RESIDU 'SCAL' ;
    DGN1   = 'EXCO' ('MOTS' 'RNX1' 'RNY1') RESIDU ('MOTS' 'UX' 'UY') ;
    DRET1  = 'EXCO' 'RET1' RESIDU 'SCAL' ;
    DALP2  = 'EXCO' 'ALF2' RESIDU 'SCAL' ;
    DRN2   = 'EXCO' 'RN2'  RESIDU 'SCAL' ;
    DGN2   = 'EXCO' ('MOTS' 'RNX2' 'RNY2') RESIDU ('MOTS' 'UX' 'UY') ;
    DRET2  = 'EXCO' 'RET2' RESIDU 'SCAL' ;
    
    TPS   = TPS   '+'  DTMIN ;
    AL1   = AL1   '+'  DALP1 ;
    ARN1  = ARN1  '+'  DRN1  ;
    AGN1  = AGN1  '+'  DGN1  ;
    AREN1 = AREN1 '+'  DRET1 ;
    AL2   = AL2   '+'  DALP2 ;
    ARN2  = ARN2  '+'  DRN2  ;
    AGN2  = AGN2  '+'  DGN2  ;
    AREN2 = AREN2 '+'  DRET2 ;
        
    'SI' (((&BLITER '/' 20) '*' 20) 'EGA' &BLITER) ;
        'MESSAGE' ('CHAINE' 'ITER =' &BLITER '  TPS =' TPS) ;
    'FINSI' ;

    'SI' (TPS > TFINAL) ;
       'QUITTER' BLITER ;
    'FINSI' ;

 'FIN' BLITER ;
* 'TEMPS' 'IMPR' ;
 'TEMPS' ;

* 'OPTION' 'SAUVER' ('CHAINE' 'result.sauv_' RAF 'tps_' TPS ) ;
* 'SAUVER'  ;

****************************************************************
****************************************************************
*****           The post-treatment                        ******
****************************************************************
****************************************************************

* 'OPTI' 'REST' 'result.sauv_1tps_5' ;
* 'REST' ;

* 
**** The mesh
*

 'SI' GRAPH ;
    'TRACER' ('DOMA' $DOMTOT 'MAILLAGE')
         'TITR' ('CHAINE' 'Maillage: ' ('NBEL' DOMTOT) ' elts');
 'FINSI' ;

*
**** Initial conditions
*

  MOD1 =  'MODELISER'  ('DOMA' $DOMTOT 'MAILLAGE') 'THERMIQUE' ;
 
 'SI' FAUX ;

    RN10 RN20 VN10 VN20 PN10 PN20 TN10 TN20 = 'PRIM' 'DEM' PGAS
      AL10 AL20 ARN10 ARN20 AGN10 AGN20 AREN10 AREN20 TN1M TN2M EPS ;

    CHM_AL10  =  'KCHA'  $DOMTOT  'CHAM'  AL10  ;
    CHM_RN10  =  'KCHA'  $DOMTOT  'CHAM'  RN10  ;
    CHM_VN10  =  'KCHA'  $DOMTOT  'CHAM'  VN10  ;
    CHM_PN10  =  'KCHA'  $DOMTOT  'CHAM'  PN10  ;
    CHM_TN10  =  'KCHA'  $DOMTOT  'CHAM'  TN10  ;
    CHM_AL20  =  'KCHA'  $DOMTOT  'CHAM'  AL20  ;
    CHM_RN20  =  'KCHA'  $DOMTOT  'CHAM'  RN20  ;
    CHM_VN20  =  'KCHA'  $DOMTOT  'CHAM'  VN20  ;
    CHM_PN20  =  'KCHA'  $DOMTOT  'CHAM'  PN20  ;
    CHM_TN20  =  'KCHA'  $DOMTOT  'CHAM'  TN20  ;
    
    'TRAC' CHM_AL10  MOD1 
       'TITR' ('CHAINE' 'alp_1 at t=' 0.0)   ;
    'TRAC' CHM_RN10  MOD1 
       'TITR' ('CHAINE' 'rho_1 at t=' 0.0)   ;
    'TRAC' CHM_VN10  MOD1 
       'TITR' ('CHAINE' 'v_1 at t= '  0.0)   ;
    'TRAC' CHM_PN10  MOD1 
       'TITR' ('CHAINE' 'p_1 at t= '  0.0)   ;
    'TRAC' CHM_TN10  MOD1 
       'TITR' ('CHAINE' 'T_1 at t= '  0.0)   ;
    'TRAC' CHM_AL20  MOD1 
       'TITR' ('CHAINE' 'alp_2 at t=' 0.0)   ;
    'TRAC' CHM_RN20  MOD1 
       'TITR' ('CHAINE' 'rho_2 at t=' 0.0)   ;
    'TRAC' CHM_VN20  MOD1 
       'TITR' ('CHAINE' 'v_2 at t= '  0.0)   ;
    'TRAC' CHM_PN20  MOD1 
       'TITR' ('CHAINE' 'p_2 at t= '  0.0)   ;
    'TRAC' CHM_TN20  MOD1 
       'TITR' ('CHAINE' 'T_2 at t= '  0.0)   ;
    
 'FINSI' ;

*
**** Results
*

 RN1 RN2 VN1 VN2 PN1 PN2 TN1 TN2 = 'PRIM' 'DEM' PGAS AL1 AL2
      ARN1 ARN2 AGN1 AGN2 AREN1 AREN2 TN1M TN2M EPS ;
  
 'SI' FAUX ;
 
    CHM_AL1  =  'KCHA'  $DOMTOT  'CHAM'  AL1  ;
    CHM_RN1  =  'KCHA'  $DOMTOT  'CHAM'  RN1  ;
    CHM_VN1  =  'KCHA'  $DOMTOT  'CHAM'  VN1  ;
    CHM_PN1  =  'KCHA'  $DOMTOT  'CHAM'  PN1  ;
    CHM_TN1  =  'KCHA'  $DOMTOT  'CHAM'  TN1  ;
    CHM_AL2  =  'KCHA'  $DOMTOT  'CHAM'  AL2  ;
    CHM_RN2  =  'KCHA'  $DOMTOT  'CHAM'  RN2  ;
    CHM_VN2  =  'KCHA'  $DOMTOT  'CHAM'  VN2  ;
    CHM_PN2  =  'KCHA'  $DOMTOT  'CHAM'  PN2  ;
    CHM_TN2  =  'KCHA'  $DOMTOT  'CHAM'  TN2  ;
    
    'TRAC' CHM_AL1  MOD1 
       'TITR' ('CHAINE' 'alp_1 at t=' TPS)   ;
    'TRAC' CHM_RN1  MOD1 
       'TITR' ('CHAINE' 'rho_1 at t=' TPS)   ;
    'TRAC' CHM_VN1  MOD1 
       'TITR' ('CHAINE' 'v_1 at t= ' TPS)   ;
    'TRAC' CHM_PN1  MOD1 
       'TITR' ('CHAINE' 'p_1 at t= ' TPS)   ;
    'TRAC' CHM_TN1  MOD1 
       'TITR' ('CHAINE' 'T_1 at t= ' TPS)   ;
    'TRAC' CHM_AL2  MOD1 
       'TITR' ('CHAINE' 'alp_2 at t=' TPS)  ;
    'TRAC' CHM_RN2  MOD1 
       'TITR' ('CHAINE' 'rho_2 at t=' TPS)  ;
    'TRAC' CHM_VN2  MOD1 
       'TITR' ('CHAINE' 'v_2 at t= ' TPS)   ;
    'TRAC' CHM_PN2  MOD1 
       'TITR' ('CHAINE' 'p_2 at t= ' TPS)   ;
    'TRAC' CHM_TN2  MOD1 
       'TITR' ('CHAINE' 'T_2 at t= ' TPS)   ;
    
 'FINSI' ;

*
*** Evolution Objects
*

 LXMED = 'PROG' ('DIME' LEX_XOT) '*' 1.0 ;
 
 TABLEG  = 'TABLE' ;
 TABLEG . 1 = 'MOT' 'TIRC MARQ PLUS' ;
 TABLEG . 2 = 'MOT' 'TIRC MARQ CROI' ;
 TABLEG . 3 = 'MOT' '' ;
 TABLEG . 'TITRE'     = 'TABLE' ;
 TABLEG . 'TITRE' . 1 = 'MOT' 'phase 1' ;
 TABLEG . 'TITRE' . 2 = 'MOT' 'phase 2' ;
 TABLEG . 'TITRE' . 3 = 'MOT' 'alp_1*ph_1 + alp_2 ph_2' ;

 TABLE2  = 'TABLE' ;
 TABLE2 . 1 = 'MOT' 'TIRC MARQ PLUS' ;
 TABLE2 . 2 = 'MOT' '' ;
 TABLE2 . 'TITRE'     = 'TABLE' ;
 TABLE2 . 'TITRE' . 1 = 'MOT' 'Num' ;
 TABLE2 . 'TITRE' . 2 = 'MOT' 'Exa' ;

 eval1 = ('EVOL' 'CHPO' al1 LIGEVO) 'COULEUR' 'ROUG' ;
 eval2 = ('EVOL' 'CHPO' al2 LIGEVO) 'COULEUR' 'BLEU' ;
 evone = (eval1 '+' eval2) 'COULEUR' 'VERT' ;

 evrn1 = ('EVOL' 'CHPO' rn1 LIGEVO) 'COULEUR' 'ROUG' ;
 evrn2 = ('EVOL' 'CHPO' rn2 LIGEVO) 'COULEUR' 'BLEU' ;
 evrn  = ((eval1 * evrn1) '+' (eval2 * evrn2)) 'COULEUR' 'VERT' ;
 evrna = 'EVOL' 'MANU' 'x' (LXMED '+' (LEX_XOT * TFINAL * -1))
    'SCAL' LEX_RHO ;

 evpn1 = ('EVOL' 'CHPO' pn1 LIGEVO) 'COULEUR' 'ROUG' ;
 evpn2 = ('EVOL' 'CHPO' pn2 LIGEVO) 'COULEUR' 'BLEU' ;
 evpn  = ((eval1 * evpn1) '+' (eval2 * evpn2)) 'COULEUR' 'VERT' ;
 evpna = 'EVOL' 'MANU' 'x' (LXMED '+' (LEX_XOT * TFINAL * -1))
    'SCAL' LEX_P ;
 
 evux1 = ('EVOL' 'CHPO' vn1 LIGEVO 'UX') 'COULEUR' 'ROUG' ;
 evux2 = ('EVOL' 'CHPO' vn2 LIGEVO 'UX') 'COULEUR' 'BLEU' ;
 evux  = ((eval1 * evux1) '+' (eval2 * evux2)) 'COULEUR' 'VERT' ;
 evuna = 'EVOL' 'MANU' 'x' (LXMED '+' (LEX_XOT * TFINAL * -1))
    'SCAL' (-1 * LEX_U) ;
 
 evuy1 = ('EVOL' 'CHPO' vn1 LIGEVO 'UY') 'COULEUR' 'ROUG' ;
 evuy2 = ('EVOL' 'CHPO' vn2 LIGEVO 'UY') 'COULEUR' 'BLEU' ;
 evuy  = ((eval1 * evuy1) '+' (eval2 * evuy2)) 'COULEUR' 'VERT' ;

 evtn1 = ('EVOL' 'CHPO' tn1 LIGEVO) 'COULEUR' 'ROUG' ;
 evtn2 = ('EVOL' 'CHPO' tn2 LIGEVO) 'COULEUR' 'BLEU' ;
 evtn  = ((eval1 * evtn1) '+' (eval2 * evtn2)) 'COULEUR' 'VERT' ;
 evtna = 'EVOL' 'MANU' 'x' (LXMED '+' (LEX_XOT * TFINAL * -1))
    'SCAL' LEX_T ;

*
* Test
*
 'SI' GRAPH ;
    'DESSIN' (eval1 'ET' eval2 'ET' evone) 'TITRE'
       'alpha (alp_1 + alp_2)'
       'LEGE' TABLEG ;
 
    'DESSIN' ((evone '-' (evone '/' evone))) 'TITRE'
       '(alp_1 + alp_2), error' ;
 
    'DESSIN' (evrn1 'ET' evrn2 'ET' evrn) 'TITRE' 'Density'
       'LEGE' TABLEG ;
 
    'DESSIN' (evrn et evrna) 'TITRE' 'Density' 'LEGE' TABLE2 ;
 
    'DESSIN' (evpn1 'ET' evpn2 'ET' evpn) 'TITRE' 'Pressure'
       'LEGE' TABLEG ;

    'DESSIN' (evpn et evpna) 'TITRE' 'Pressure' 'LEGE' TABLE2 ;

    'DESSIN' (evtn1 'ET' evtn2 'ET' evtn) 'TITRE' 'Temperature'
       'LEGE' TABLEG ;

    'DESSIN' (evtn et evtna) 'TITRE' 'Temperature' 'LEGE' TABLE2 ;

    'DESSIN' (evux1 'ET' evux2 'ET' evux) 'TITRE' 'ux'
       'LEGE' TABLEG ;

    'DESSIN' (evux et evuna) 'TITRE' 'ux' 'LEGE' TABLE2 ;

    'DESSIN' (evuy1 'ET' evuy2 'ET' evuy) 'TITRE' 'uy'
       'LEGE' TABLEG ;

    'DESSIN' (evuy) 'TITRE' 'uy' ;
       
 'FINSI' ;
         
*
**** Test
*
 lxa = 'EXTRAIRE' EVRNA 'ABSC' ;
 lrhoa = 'EXTRAIRE' EVRNA 'ORDO' ;
 lx = 'EXTRAIRE' EVRN 'ABSC' ;
 lrho = 'EXTRAIRE' EVRN 'ORDO' ;
 lrho1 = 'IPOL' lxa lx lrho ;
 erro = 'ABS' ((lrho1 '-' lrhoa) '/' lrhoa) ;
 lxa1 = (lxa  '-'
    ('PROG' ('DIME' lxa) '*' ('MINIMUM' lxa))) ;
 everro = 'EVOL' 'MANU' 'x' lxa1 'y' erro ;
 erroint = ('PRIM' everro) ;
 'SI' GRAPH ;
    'DESSIN' everro 'TITRE' 'Erreur' ;
    'DESSIN' erroint 'TITRE' 'Integral de l Erreur' ;
 'FINSI' ;   
 errL1 = ('MAXIMUM' ('EXTRAIRE' erroint 'ORDO')) '/'
   ('MAXIMUM' lxa1) ;
 'MESSAGE' ;
 'MESSAGE' ('CHAINE' 'ERR_L1 = ' errL1) ;
 'MESSAGE' ;

 SI (errL1 > 1.0D-1) ;
    'ERREUR' 'errL1 too big !!! ' ;
    'ERREUR' 5 ;
 'FINSI' ;
 'FIN' ;
 

 

 

 

 

© Cast3M 2003 - All rights reserved.
Disclaimer