Download transport1_new.dgibi

Back to the list

* fichier :  transport1_new.dgibi
*
********************* CAS TEST : transport1.dgibi ********************
*
GRAPH = FAUX   ;
'OPTI' 'ECHO' 0 ;
CRIT1 = 1.D-6 ;
'SAUT' 'PAGE' ;
*
*---------------------------------------------------------------------
* TEST TRANSPORT1
*                 CALCUL DARCY ISOTROPE TRANSPORT.
*                       Transport d'un front.
*
*                   dT
*                   -- + div (uT - Kgrad(T)) = 0
*                   dt
*
* Ce test permet de vérifier le bon fonctionnement des opérateurs
* utilisés afin de résoudre l'équation de transport par diffusion
* convection d'un champ scalaire passif par la méthode d'éléments
* finis mixtes hybrides et VF implantés dans CASTEM2000.
* Le décentrement est utilisé. 
*
*
*---------------------------------------------------------------------
*
*------------------
* Options generales
*------------------
*
'OPTI' 'DIME' 2 'ELEM' 'QUA4' ;
'OPTI' 'ISOV' 'SURF'          ;
*
*
*=========
* MAILLAGE
*=========
*
*
*- Création des points supports du contour du domaine, et des droites
*- passant par les centres et les faces pour le post-traitement.
*
L     = 100.D0          ;
H     = 20.D0            ;
X0    = 0.D0            ;
X1    = X0 + L          ;
Y0    = 0.D0            ;
Y1    = Y0 + H          ;
INUMX = 141              ;
INUMY = 17               ;

DX    = X1 - X0 / INUMX ;
DY    = H '/' INUMY     ;

*
A1    = X0 Y0   ;
A3    = X1 Y0   ;
D1    = X0 Y1   ;
D3    = X1 Y1   ;

*
*- Création des DROITES frontieres
*
DRBAS = A3 'DROI' INUMX A1 ;
DRGAU = A1 'DROI' INUMY D1 ;
DRHAU = D1 'DROI' INUMX D3 ;
DRDRO = D3 'DROI' INUMY A3 ;
PELIM = DY / (100.D0) ;
*
*- Creation maillage GEOMETRIQUE
*
PTOT1  = 'DALL' DRBAS DRGAU DRHAU DRDRO ;
PTOT2  = 'ORIE' PTOT1                   ;
*
*- Creation maillage HYBRIDE y compris sous-objets (cond. limites)
*
*DRMID = B1 'DROI' INUMX B3              ;
*DRMIC = C1 'DROI' INUM1 C3              ;
*EXT1  = 'MANU' 'POI1' B1                ;
*
QFTOT= 'CHAN' PTOT2  QUAF ;
QFGAU= 'CHAN' DRGAU  QUAF ;
QFDRO= 'CHAN' DRDRO  QUAF ;
 ELIM PELIM (QFTOT ET QFGAU ET QFDRO) ;
*
*================
* INITIALISATIONS
*================
*
*                                                    ----------------
*                                                    = MODELISATION =
*                                                    ----------------
MODHYB = 'MODL' QFTOT 'DARCY' 'ANISOTROPE' ;
MODDRO = 'MODL' QFDRO 'DARCY' 'ISOTROPE' ;
MODGAU = 'MODL' QFGAU 'DARCY' 'ISOTROPE' ;
CHYB1 = 'DOMA' MODHYB 'SURFACE'          ;
CHYB2 = 'DOMA' MODHYB 'NORMALE'          ;


xcoor ycoor = 'COORDONNEE' ('DOMA' modhyb centre);


*
*                                               ---------------------
*                                               = Donnees physiques =
*                                               ---------------------
*
T0    = 0.D0 ; T1  = 100.D0    ;
VX1   = 1.D0 ; VY1 = 0.D0    ;
VK    = 1.D-1               ;
MATI2 = MANU 'CHPO' ('DOMA' MODHYB 'CENTRE')  'K' VK ;
MATI2 = ('NOMC' K11 MATI2) '+' ('NOMC' K22 mati2) '+'
        ('NOMC' K21 (0.D0 * MATI2));
*MATI2 = KCHA MODHYB MATI2 'CHAM';
*
SPEED = 'MANU' 'CHPO' ('DOMA' MODHYB 'FACE')  2
        'VX' VX1 'VY' VY1 'NATURE' 'DISCRET' ;
SPEEDC = 'MANU' 'CHPO' ('DOMA' MODHYB 'CENTRE')  2
        'VX' VX1 'VY' VY1 'NATURE' 'DISCRET' ;
MOT1  = 'MOTS' 'VX' 'VY'                     ;
MOT2  = 'MOTS' 'UX' 'UY'                     ;
FLU1  = 'PSCA' SPEED CHYB2 MOT1 MOT2         ;
FLU2  = CHYB1 * FLU1                         ;
FLU3  = 'NOMC' 'FLUX' FLU2                   ;
*
*                                             -----------------------
*                                             = Donnees transitoire =
*                                             -----------------------
*  TETA   : Parametre de le theta-méthode
*  TMAX   : Temps final
*  TSUP   : Temps pour conditions aux limites
*  DELTAT : Pas de temps
*
TETA   = 1.00D0       ;
TMIN   = 0.D0         ;
TMAX   = 60.00D0      ;
TSUP   = 1.2D0 * TMAX ;
DELTAT = 1.0D-0        ;
*
LICALC = 'PROG' TMIN 'PAS' DELTAT TMAX ;
LISAUV = 'PROG' TMAX                   ;
*
*                                             ------------------------
*                                             = Conditions initiales =
*                                             ------------------------
*TCHYB =  'MANU' 'CHPO' ('DOMA' MODHYB 'CENTRE') 1 'H' 1.D0
*              'NATURE' 'DISCRET' ;

INUMX1 = INUMX '+' 1;
INUMY1 = INUMY '+' 1;
TCHYB = 'MASQUE' xcoor SUPERIEUR (0.2D0 * L);
TCHYB = TCHYB * (
    'MASQUE' xcoor INFERIEUR (0.3D0 * L));
TCHYB = TCHYB * (
    'MASQUE' ycoor INFERIEUR (0.6D0 * H));
TCHYB = TCHYB * (
    'MASQUE' ycoor SUPERIEUR (0.4D0 * H));
TCHYB = 'NOMC' 'H' TCHYB;

* On rend la masse initiale indépendante du maillage.
TCHYB = TCHYB / (maxi (resu (TCHYB * (doma modhyb volume))));



*
*                                                       --------------
*                                                       = T imposée  =
*                                                       --------------
*opti donn 5;
CHCLIM = TABLE;
CHCLIM . 'DIRICHLET' = 'MANU' 'CHPO' ('DOMA' MODDRO 'CENTRE') 1
               'H' T0 'NATURE' 'DISCRET' ;
CHCLIM . 'DIRICHLET' = CHCLIM . 'DIRICHLET' +
                 ('MANU' 'CHPO' ('DOMA' MODGAU 'CENTRE') 1
               'H' T1 'NATURE' 'DISCRET') ;
 
GEOL1 = TABLE;
GEOL1 . 'CONCENTRATION'     = 'MANUEL' CHPO ('DOMA' modhyb 'CENTRE')
                                          'H' 0.D0 ;
GEOL1 . 'LUMP'              = FAUX                  ;
GEOL1 . 'TYPDISCRETISATION' = 'EFMH'                ;
GEOL1 . 'THETA_DIFFUSION'   = 1.0D0                 ;
GEOL1 . 'THETA_CONVECTION'  = 1.0D0                 ;
GEOL1 . 'DECENTREMENT'      = FAUX                  ;
GEOL1 . 'DELTAT'            = 10.D15                ;
* conduct en m/an
GEOL1 . 'DIFFUSIVITE'       =  mati2 '/' vk      ;
GEOL1 . 'SOLVEUR'           = 2                     ;
GEOL1 . 'PRECONDITIONNEUR'  = 3                     ;
GEOL1 . 'POROSITE'          = 'MANU' 'CHPO'
                (doma MODHYB CENTRE) 'CK' 0.D0 ;
GEOL1 . 'CLIMITES'          = CHCLIM                ;
GEOL1 . 'RECALCUL'          = VRAI                  ;
*

*'OPTION' donn 5;

GEOL1 GEOL2 = TRANGEOL Modhyb GEOL1;









QFACE1 =  GEOL1 . 'FLUXDIFF'               ;
VCENT1 = 'HVIT' MODHYB (nomc FLUX QFACE1)              ; 


*
*                                          ---------------------------
*                                          = Table DARCY_TRANSITOIRE =
*                                          ---------------------------
*
*
*

*-- Table de transport :
Transp                         = 'TABLE';
Transp . 'MODELE'              = MODHYB ;
Transp.'TEMPS'                 = 'TABLE';
Transp.'CONCENTRATION'         = 'TABLE';
Transp.'FLUXDIFF'              = 'TABLE';
Transp.'FLUXCONV'              = 'TABLE';
Transp.'CARACTERISTIQUES'      = 1.D-10 * MATI2;
Transp.'POROSITE'              = 1.D0;
Transp.'COEF_RETARD'           = 1.D0;
*Transp.'CONVECTION'            =  NOMC 'SCAL' FLU3 ;
Transp.'CONVECTION'            =  (nomc SCAL (1.D0 * QFACE1)) /
                           (doma MODHYB SURFACE) ;
Transp . 'CONVECTION'        = Transp . CONVECTION *
                           (doma Modhyb NORMALE);
Transp.'VITELEM'            =   VCENT1 ;
*Transp . 'ALPHAL'           = MANU 'CHPO' (doma MODHYB centre)
*                              'SCAL' 1.D0;
*Transp . 'ALPHAT'           = MANU 'CHPO' (doma MODHYB centre)
*                              'SCAL' 0.D0;

* Conditions initiales :
Transp.'TEMPS'. 0              = TMIN ;
Transp.'CONCENTRATION'. 0      = TCHYB;
Transp.'FLUXDIFF'. 0           = 0.D0 * FLU3 ;
Transp.'FLUXCONV'. 0           = 0.D0 * FLU3;

* Conditions aux limites :
Transp . 'TRACE_IMPOSE' = CHAR ('MANU' 'CHPO' ('DOMA' MODGAU 'CENTRE') 1
              'H' 0.D0  'NATURE' 'DISCRET')
              ('EVOL' 'MANU' ('PROG' 0. TSUP) ('PROG' 1. 1.))       ;
*Transp . 'FLUXTOT_IMP' =  TTT1       ;


* Paramètres numériques :
Transp.'THETA_DIFF'            = 1.D0;
Transp.'THETA_CONVECTION'      = 1.D0;
Transp.'LUMP'                  = FAUX;
Transp.'TYPDISCRETISATION'     = 'EFMH';
Transp.'DECENTR'          = VRAI;

TABRES = table METHINV;
TABRES . 'TYPINV' = 1;
TABRES . 'PRECOND' = 3;

Transp . 'METHINV' = TABRES;


Transp.'TEMPS_CALCULES'        = LiCalc;
*Transp.'TEMPS_SAUVES'          = LiSauv;


Transp . INTCONC = TABLE;
Transp . INTCONC . 0 = 0.D0 * TCHYB;
*                                                            ==========
*                                                            | CALCUL |
*                                                            ==========


*=======================
* Resolution transitoire
*=======================
*
TRANSGEN TRANSP ;
*
*
*=================
* POST-TRAITEMENT
*=================

****************************************************************************
'SI' (GRAPH) ;
titre 'Premier champ de concentration' ;
trac (kcha TRANSP . CONCENTRATION . 1 MODHYB CHAM) modhyb;
*
NbTps = 'DIME' (Transp.'TEMPS') ;
titre 'Dernier champ de concentration calcule' ;
trac (kcha (TRANSP . CONCENTRATION . (NbTps - 1)) MODHYB CHAM) modhyb;
'FINSI' ;



LiMASS = 'PROG' ;
LiTps = 'PROG' ;
zozo = 0.D0;
roro = 'PROG';
litpm1 = 'PROG' ;
*



'REPETER' BclFlT (('DIME' (Transp.'TEMPS')) - 1 );
  ICour   = (&BclFlT) ;
  toto = 'KOPS' transp . CONCENTRATION . Icour  *
                transp . POROSITE;
  toto = toto * ('DOMA' modhyb VOLUME);
*  'LISTE' ('MAXIMUM' ('RESULT' toto));
   LiTps   = LiTps 'ET' ('PROG' (Transp. 'TEMPS' . ICour)) ;
  FlTCour = 'MAXIMUM' ('RESULT' toto) ;
*  'LISTE' fltcour;
  LiMASS   = LiMASS 'ET' ('PROG' FlTCour) ;
'FIN' BclFlT ;


mailimg = 'DOMA' modgau centre; 
mailimd = 'DOMA' moddro centre; 


EvMASS = 'EVOL' 'ROUGE' 'MANUEL' 'Time (y)' Litps 'Total mass'
    (LiMASS) ;

'SI' (graph) ;
'DESSIN' EvMASS 'TITRE' 'evolution de la masse dans les fractures' ;
'FINSI' ;


LiFLT = 'PROG' ;
LiTps = 'PROG' ;
zozo = 0.D0;
roro = 'PROG';
litpm1 = 'PROG' ;
'REPETER' BclFlT ('DIME' (Transp.'TEMPS')) ;
  ICour   = (&BclFlT) '-' 1 ;
  LiTps   = LiTps 'ET' ('PROG' (Transp. 'TEMPS' . ICour)) ;
  LesFlCo = ('REDU' (TRANSP . FLUXCONV . ICour
               '+' TRANSP . FLUXDIFF . ICour ) mailimg) ;
  FlTCour = 'MAXIMUM' ('RESULT' LesFlCo) ;
*  'LISTE' fltcour;
  LiFLT   = LiFLT 'ET' ('PROG' FlTCour) ;
  SI ( Icour < (('DIME' (Transp.'TEMPS')) '-' 1));
  zozo = zozo '+' (fltcour * (((Transp. 'TEMPS' . (ICour+1)))
                   '-' ((Transp. 'TEMPS' . ICour))));
  roro = roro 'ET' ('PROG' zozo);
  LiTpm1 = LiTpm1 'ET' ('PROG' (Transp. 'TEMPS' . ICour)) ;
  'FINSI' ;
'FIN' BclFlT ;
*
XConvSY = 1.D0 ;
LiTpsy = LiTps '/' (XConvSY) ;
EvFLT = 'EVOL' 'ROUGE' 'MANUEL' 'Time (y)' LiTpsy 'Total FLux' (LiFLT
'*' XconvSY) ;
*
ChTitr = 'CHAINE' 'Evolution du flux (1/year) en
      sortie (positif sortant)' ;

'SI' (GRAPH) ;        
'DESSIN' EvFLT 'TITRE' ChTitr ;
'FINSI' ;

EvFLTS = 'EVOL' 'JAUNE' 'MANUEL' 'Time (y)' LiTpm1 'Total FLux (1/y)
        sortant'  roro ;

ChTitr = 'CHAINE' 'Evolution du flux total integré dans le temps
            en sortie (positif sortant)';



*
LiFLT = 'PROG' ;
LiTps = 'PROG' ;
*
*  Pas de CORRECTION normale sortante à droite

zozo = 0.D0;
roro = 'PROG';
litpm1 = 'PROG' ;
'REPETER' BclFlT ('DIME' (Transp.'TEMPS')) ;
  ICour   = (&BclFlT) '-' 1 ;
  LiTps   = LiTps 'ET' ('PROG' (Transp. 'TEMPS' . ICour)) ;
  LesFlCo =  ('REDU' (TRANSP . FLUXCONV . ICour
                   '+' TRANSP . FLUXDIFF . ICour) mailimd)  ;
  FlTCour = 'MAXIMUM' ('RESULT' LesFlCo) ;
  LiFLT   = LiFLT 'ET' ('PROG' FlTCour) ;
  SI ( Icour < (('DIME' (Transp.'TEMPS')) '-' 1));
  zozo = zozo '+' (fltcour * (((Transp. 'TEMPS' . (ICour+1)))
                   '-' ((Transp. 'TEMPS' . ICour))));
  roro = roro 'ET' ('PROG' zozo);
  LiTpm1 = LiTpm1 'ET' ('PROG' (Transp. 'TEMPS' . ICour)) ;
  'FINSI' ;
'FIN' BclFlT ;

LiTpsy = LiTps '/' (XConvSY) ;
EvFLT = 'EVOL' 'BLEU' 'MANUEL' 'Time (y)' LiTpsy 'Total FLux (1/y)'
        (LiFLT*xconvsy) ;

ChTitr = 'CHAINE' 'Evolution du flux total en entree (positif sortant)';

'SI' (graph) ;
'DESSIN' EvFLT 'TITRE' ChTitr ;
'FINSI';

EvFLTE = 'EVOL' 'JAUNE' 'MANUEL' 'Time (y)' LiTpm1 'Total FLux (1/y)
           entree ' roro ;

ChTitr = 'CHAINE' 'Evolution du flux total integré dans le temps
            à lentréé 'ET' sortie (positif sortant)';
            
'SI' (graph) ;
'DESSIN' (EvFLTE 'ET' evflts) 'TITRE' ChTitr ;

'DESSIN' (evflts '+' evflte) TITRE 'flux total en entree ET sortie';

'DESSIN' (evflts '+' evflte '+' evmass)
        TITRE 'conservation masse totale';
'FINSI' ;


dum = evflts '+' evflte '+' evmass ;
dum = 'EXTRAIRE' dum 'ORDO';
massi = 'PROG' ('DIME' (dum)) * -1.D0;
dum =  massi '+' dum;
'MESSAGE' 'conservation de la masse' ('MAXIMUM' ('ABS' dum));

*'OPTION' donn 5;
'SI' (('MAXIMUM' ('ABS' dum)) > 1.D-11 ) ;
*  mauvaise conservation de la masse
   'ERREUR' 5;
'SINON' ;
*  pas d'erreur de conservation
   ERCONSEF = VRAI;
'FINSI'   ;


**************post VF ********************************************
* on sauve la derniere concentration EFMH

concEFMH = Transp . CONCENTRATION . (('DIME' transp . TEMPS) '-' 1);



*-- Table de transport :
Transp                         = 'TABLE';
Transp . 'MODELE'              = MODHYB ;
Transp.'TEMPS'                 = 'TABLE';
Transp.'CONCENTRATION'         = 'TABLE';
Transp.'FLUXDIFF'              = 'TABLE';
Transp.'FLUXCONV'              = 'TABLE';
Transp.'CARACTERISTIQUES'      = 1.D-10 * MATI2;
Transp.'POROSITE'              = 1.D0;
Transp.'COEF_RETARD'           = 1.D0;
*Transp.'CONVECTION'            =  NOMC 'SCAL' FLU3 ;
Transp.'CONVECTION'            =  (nomc SCAL (1.D0 * QFACE1)) /
                           (doma MODHYB SURFACE) ;
Transp . 'CONVECTION'        = Transp . CONVECTION *
                           (doma Modhyb NORMALE);
Transp.'VITELEM'            =   VCENT1 ;
*Transp . 'ALPHAL'           = MANU 'CHPO' (doma MODHYB centre)
*                              'SCAL' 1.D0;
*Transp . 'ALPHAT'           = MANU 'CHPO' (doma MODHYB centre)
*                              'SCAL' 0.D0;

* Conditions initiales :
Transp.'TEMPS'. 0              = TMIN ;
Transp.'CONCENTRATION'. 0      = TCHYB;
Transp.'FLUXDIFF'. 0           = 0.D0 * FLU3 ;
Transp.'FLUXCONV'. 0           = 0.D0 * FLU3;

* Conditions aux limites :
Transp . 'TRACE_IMPOSE' = CHAR ('MANU' 'CHPO' ('DOMA' MODGAU 'CENTRE') 1
              'H' 0.D0  'NATURE' 'DISCRET')
              ('EVOL' 'MANU' ('PROG' 0. TSUP) ('PROG' 1. 1.))       ;
*Transp . 'FLUXTOT_IMP' =  TTT1       ;


* Paramètres numériques :
Transp.'THETA_DIFF'            = 1.D0;
Transp.'THETA_CONVECTION'      = 1.D0;
Transp.'LUMP'                  = FAUX;
Transp.'TYPDISCRETISATION'     = 'VF';
Transp.'DECENTR'          = VRAI;

TABRES = table METHINV;
TABRES . 'TYPINV' = 1;
TABRES . 'PRECOND' = 3;

Transp . 'METHINV' = TABRES;


Transp.'TEMPS_CALCULES'        = LiCalc;
*Transp.'TEMPS_SAUVES'          = LiSauv;


Transp . INTCONC = TABLE;
Transp . INTCONC . 0 = 0.D0 * TCHYB;
*                                                            ==========
*                                                            | CALCUL |
*                                                            ==========


*=======================
* Resolution transitoire
*=======================
*
TRANSGEN TRANSP ;
*
*
*=================
* POST-TRAITEMENT
*=================

****************************************************************************
'SI' (GRAPH) ;
titre 'Premier champ de concentration' ;
trac (kcha TRANSP . CONCENTRATION . 1 MODHYB CHAM) modhyb;
*
NbTps = 'DIME' (Transp.'TEMPS') ;
titre 'Dernier champ de concentration calcule' ;
trac (kcha (TRANSP . CONCENTRATION . (NbTps - 1)) MODHYB CHAM) modhyb;
'FINSI' ;



LiMASS = 'PROG' ;
LiTps = 'PROG' ;
zozo = 0.D0;
roro = 'PROG';
litpm1 = 'PROG' ;
*



'REPETER' BclFlT (('DIME' (Transp.'TEMPS')) - 1 );
  ICour   = (&BclFlT) ;
  toto = 'KOPS' transp . CONCENTRATION . Icour  *
                transp . POROSITE;
  toto = toto * ('DOMA' modhyb VOLUME);
*  'LISTE' ('MAXIMUM' ('RESULT' toto));
   LiTps   = LiTps 'ET' ('PROG' (Transp. 'TEMPS' . ICour)) ;
  FlTCour = 'MAXIMUM' ('RESULT' toto) ;
*  'LISTE' fltcour;
  LiMASS   = LiMASS 'ET' ('PROG' FlTCour) ;
'FIN' BclFlT ;


mailimg = 'DOMA' modgau centre; 
mailimd = 'DOMA' moddro centre; 


EvMASS = 'EVOL' 'ROUGE' 'MANUEL' 'Time (y)' Litps 'Total mass'
    (LiMASS) ;

'SI' (graph) ;
'DESSIN' EvMASS 'TITRE' 'evolution de la masse dans les fractures' ;
'FINSI' ;


LiFLT = 'PROG' ;
LiTps = 'PROG' ;
zozo = 0.D0;
roro = 'PROG';
litpm1 = 'PROG' ;
'REPETER' BclFlT ('DIME' (Transp.'TEMPS')) ;
  ICour   = (&BclFlT) '-' 1 ;
  LiTps   = LiTps 'ET' ('PROG' (Transp. 'TEMPS' . ICour)) ;
  LesFlCo = ('REDU' (TRANSP . FLUXCONV . ICour
               '+' TRANSP . FLUXDIFF . ICour ) mailimg) ;
  FlTCour = 'MAXIMUM' ('RESULT' LesFlCo) ;
*  'LISTE' fltcour;
  LiFLT   = LiFLT 'ET' ('PROG' FlTCour) ;
  SI ( Icour < (('DIME' (Transp.'TEMPS')) '-' 1));
  zozo = zozo '+' (fltcour * (((Transp. 'TEMPS' . (ICour+1)))
                   '-' ((Transp. 'TEMPS' . ICour))));
  roro = roro 'ET' ('PROG' zozo);
  LiTpm1 = LiTpm1 'ET' ('PROG' (Transp. 'TEMPS' . ICour)) ;
  'FINSI' ;
'FIN' BclFlT ;
*
XConvSY = 1.D0 ;
LiTpsy = LiTps '/' (XConvSY) ;
EvFLT = 'EVOL' 'ROUGE' 'MANUEL' 'Time (y)' LiTpsy 'Total FLux' (LiFLT
'*' XconvSY) ;
*
ChTitr = 'CHAINE' 'Evolution du flux (1/year) en
      sortie (positif sortant)' ;

'SI' (GRAPH) ;        
'DESSIN' EvFLT 'TITRE' ChTitr ;
'FINSI' ;

EvFLTS = 'EVOL' 'JAUNE' 'MANUEL' 'Time (y)' LiTpm1 'Total FLux (1/y)
        sortant'  roro ;

ChTitr = 'CHAINE' 'Evolution du flux total integré dans le temps
            en sortie (positif sortant)';



*
LiFLT = 'PROG' ;
LiTps = 'PROG' ;
*
*  Pas de CORRECTION normale sortante à droite

zozo = 0.D0;
roro = 'PROG';
litpm1 = 'PROG' ;
'REPETER' BclFlT ('DIME' (Transp.'TEMPS')) ;
  ICour   = (&BclFlT) '-' 1 ;
  LiTps   = LiTps 'ET' ('PROG' (Transp. 'TEMPS' . ICour)) ;
  LesFlCo =  ('REDU' (TRANSP . FLUXCONV . ICour
                   '+' TRANSP . FLUXDIFF . ICour) mailimd)  ;
  FlTCour = 'MAXIMUM' ('RESULT' LesFlCo) ;
  LiFLT   = LiFLT 'ET' ('PROG' FlTCour) ;
  SI ( Icour < (('DIME' (Transp.'TEMPS')) '-' 1));
  zozo = zozo '+' (fltcour * (((Transp. 'TEMPS' . (ICour+1)))
                   '-' ((Transp. 'TEMPS' . ICour))));
  roro = roro 'ET' ('PROG' zozo);
  LiTpm1 = LiTpm1 'ET' ('PROG' (Transp. 'TEMPS' . ICour)) ;
  'FINSI' ;
'FIN' BclFlT ;

LiTpsy = LiTps '/' (XConvSY) ;
EvFLT = 'EVOL' 'BLEU' 'MANUEL' 'Time (y)' LiTpsy 'Total FLux (1/y)'
        (LiFLT*xconvsy) ;

ChTitr = 'CHAINE' 'Evolution du flux total en entree (positif sortant)';

'SI' (graph) ;
'DESSIN' EvFLT 'TITRE' ChTitr ;
'FINSI';

EvFLTE = 'EVOL' 'JAUNE' 'MANUEL' 'Time (y)' LiTpm1 'Total FLux (1/y)
           entree ' roro ;

ChTitr = 'CHAINE' 'Evolution du flux total integré dans le temps
            à lentréé 'ET' sortie (positif sortant)';
            
'SI' (graph) ;
'DESSIN' (EvFLTE 'ET' evflts) 'TITRE' ChTitr ;

'DESSIN' (evflts '+' evflte) TITRE 'flux total en entree ET sortie';

'DESSIN' (evflts '+' evflte '+' evmass)
        TITRE 'conservation masse totale';
'FINSI' ;


dum = evflts '+' evflte '+' evmass ;
dum = 'EXTRAIRE' dum 'ORDO';
massi = 'PROG' ('DIME' (dum)) * -1.D0;
dum =  massi '+' dum;
'MESSAGE' 'conservation de la masse' ('MAXIMUM' ('ABS' dum));

*'OPTION' donn 5;
'SI' (('MAXIMUM' ('ABS' dum)) > 1.D-11 ) ;
*  mauvaise conservation de la masse
   'ERREUR' 5;
'SINON' ;
*  pas d'erreur de conservation
   ERCONSVF = VRAI;
'FINSI'    ;                           


* On sauve la concentration VF finale

concVF =  Transp . CONCENTRATION . (('DIME' transp . TEMPS) '-' 1);


**************** COMPAR VF - EFMH **********************************

toto = concEFMH '-' concVF ;
toto = 'KOPS' toto * toto;
toto = ('DOMA' modhyb volume) * toto;
toto = 'MAXIMUM' (('RESULT' toto));
titi = ('DOMA' modhyb volume) * ('KOPS' concVF * concVF);
titi = 'MAXIMUM' ('RESULT' titi);
toto = (toto '/' titi)**0.5D0;

'MESSAGE' 'erreur relative L2' (toto); 

'SI' (toto > 1.D-2) ;
   'ERREUR' 5 ;
'SINON' ;
    erEFVF = VRAI;
'FINSI' ;


**************** POST HYDRAU ****************************************

FLTotE  = 'RESULT' (('REDU' QFACE1 mailimd)) ;
FLTotE = -1.D0 * FltotE;
fltote = maxi fltote;

* FLux sortants
FLTotS  = 'RESULT' (('REDU' QFACE1 mailimg)) ;
fltots = maxi fltots;

* Affichage des résultats

'MESSAGE' 'Résultats hydraulique : ' ;
'MESSAGE' ' ' ;
'MESSAGE' 'FLux entrant (total, rapporté à la surface) ' FLTotE  ;
'MESSAGE' 'FLux sortant (total, rapporté à la surface) ' FLTotS  ;
'MESSAGE' ' ' ;
'MESSAGE' 'Keq associés ' Keq1 Keq2 ;


'SI' (erefvf 'ET' erconsvf 'ET' erconsef) ;
  'ERREUR' 0;
'SINON' ;
  'ERREUR' 5;
'FINSI' ;


'FIN';
 

© Cast3M 2003 - All rights reserved.
Disclaimer