* 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