* fichier :  fluechnak.dgibi
GRAPH = faux ;
******************** CAS TEST : fluechnak.dgibi **********************

* --------------------------------------------------------------------
*
*   TRANSPORT GEOCHIMIE
*
*    ECHANGE IONIQUE  AVEC BILAN DE FLUX
*
* --------------------------------------------------------------------
'OPTION' 'ECHO' 0 ;
'SAUTER' 'PAGE';
* repertoire des fichiers "divers"
DIVERS = VENV 'CASTEM_DIVERS';
*

* emplacement de COMPOM
emp1 = 'CHAINE' DIVERS '/COMPOM' ;

********************************************************
*              Données géométriques et physiques
********************************************************
*
*- Définition du maillage
*
'OPTION' 'DIME' 2 'ELEM' 'QUA4' 'TRACER' 'PSC' ;
*
*
A    = 0. 0. ;
LX   = 10.  ;
B    = LX 0.;
NX   = 1 ;
NY1  = 10 ;
LY1  = 10. ;
NY2  = 30 ;
LY2  = 30. ;
LY   = LY1 + LY2 ;
NY   = NY1 + NY2 ;
AB   = ('DROIT' NX A B) ;
G0   = 'TRANSLATION' AB NY1 (0. LY1) ;
CCDD = 'INVERSE' ('COTE' 3 G0) ;
DTOT = 'TRANSLATION' G0 NY2 (0. LY2) ;
BC   = 'INVERSE' ('COTE' 2 DTOT) ;
CD   = 'INVERSE' ('COTE' 3 DTOT) ;
*
*- création des maillages hybrides
*
MFTOT  = 'CHANGER' DTOT 'QUAF'  ;
MFAB   = 'CHANGER' AB   'QUAF'  ;
MFBC   = 'CHANGER' BC   'QUAF'  ;
MFCD   = 'CHANGER' CD   'QUAF'  ;
MFG0   = 'CHANGER' G0   'QUAF'  ;
MFCCDD = 'CHANGER' CCDD 'QUAF'  ;
'ELIMINATION' 0.001 (MFTOT 'ET' MFAB 'ET' MFBC 'ET' MFCD 'ET' MFG0
                           'ET' MFCCDD);
*
*- modèles
*
MODHYB = 'MODELE' MFTOT  'DARCY' 'ISOTROPE'  ;
MMAB   = 'MODELE' MFAB   'DARCY' 'ISOTROPE'  ;
MMBC   = 'MODELE' MFBC   'DARCY' 'ISOTROPE'  ;
MMCD   = 'MODELE' MFCD   'DARCY' 'ISOTROPE'  ;
MMG0   = 'MODELE' MFG0   'DARCY' 'ISOTROPE'  ;
MMCCDD = 'MODELE' MFCCDD 'DARCY' 'ISOTROPE'  ;
*
CHYB1  = 'DOMA' MODHYB 'SURFACE' ;
CHYB2  = 'DOMA' MODHYB 'NORMALE' ;
MCHYB  = 'DOMA' MODHYB 'ORIENTAT';
XVOLU  = 'DOMA' MODHYB 'VOLUME' ;
FATOT  = 'DOMA' MODHYB 'FACE' ;
CETOT  = 'DOMA' MODHYB 'CENTRE' ;
CEAB   = 'DOMA' MMAB   'CENTRE' ;
CEBC   = 'DOMA' MMBC   'CENTRE' ;
CECCDD = 'DOMA' MMCCDD 'CENTRE' ;
*
*- Définition de maillages lignes pour le post traitement
*
NBCC = 'NBNO' CEBC ;
PI1  = 'POINT' CEBC 1 ;
PI0  = PI1 ;
I    = 2 ;
SI ( NBCC > 1 ) ;
  PI2   = 'POINT' CEBC I ;
  BCSEG = 'QUELCONQUE' 'SEG2' PI1 PI2 ;
  SI ( NBCC > 2 ) ;
    NBCC2 = NBCC - 2 ;
    'REPETER' BLOC6 NBCC2 ;
      PI1   = PI2 ;
      I     = I + 1 ;
      PI2   = 'POINT' CEBC I ;
      LILI  = 'QUELCONQUE' 'SEG2' PI1 PI2 ;
      BCSEG = BCSEG 'ET' LILI ;
    FIN BLOC6 ;
  FINSI ;
FINSI ;
VV     = 0.5 * B ;
MAFACC = 'MOIN' ('INVERSE' BC) VV ;
ELIM 0.01 MAFACC  FATOT ;
MMP    = 'ELEM' MAFACC 'APPUYE' 'LARGEMENT' ('POINT' MAFACC FINAL) ;
MC     = 'DIFF' MAFACC MMP ;
VVY    = LY / NY * 0.5 ;
VVVY   = 0. VVY ;
MACENT = 'PLUS' MC VVVY ;
MACENT = 'COULEUR' MACENT 'ROUGE' ;
'ELIMINATION' 0.01 MACENT CETOT ;
*
*- on entre la vitesse on en deduit le flux aux faces
*
V     = 'MANU' 'CHPO' FATOT 'NATURE' 'DISCRET' 2 'UX' 0. 'UY' 1.;
MOT1  = 'MOTS' UX UY ;
VAVN  = 'PSCAL' V CHYB2 MOT1 MOT1 ;
VAVN  = 'NOMC' 'SCAL' VAVN ;
QFACE = VAVN * CHYB1 ;
QFACE = 'NOMC' QFACE 'FLUX' ;
*
*-coefficient de diffusion
*
VK   = 1.  ;
MAT1 = 'MATERIAU' MODHYB 'K' VK ;
*
*- ce qui est indépendant du composant et du temps
*
EPSS   = 0.005 ;
DELTAT = 0.5D0 ;
TETA   = 1.00D0 ;
BBBAS  = 'BLOQ' CEAB 'TH' ;
*
********************************************************
* CALCUL CHI1
********************************************************
TABDON = 'OBJET' DONCHI1 ;
TABDON%GIDEN ('LECT' 5 4 103 50) ;
COMP1 = 'OBJET' LINVCOMP ;
COMP1%COM_IDEN  75 ;
COMP1%COM_NOM   X075 ;
COMP1%COM_CHAR  0 ;
TABDON%GNVCOMP  1  COMP1 ;
TABESP1= 'OBJET' LIESPECE ;
TABESP1%ESP_IDEN  1815 ;
TABESP1%ESP_LOGK  10.;
TABESP1%ESP_ITYP  2 ;
TABESP1%ESP_COMP  ('LECT' 75  5) ;
TABESP1%ESP_STOE  ('PROG'  1.  1.) ;
TABESP2= 'OBJET'  LIESPECE ;
TABESP2%ESP_IDEN  1816;
TABESP2%ESP_LOGK  10. ;
TABESP2%ESP_ITYP  2 ;
TABESP2%ESP_COMP  ('LECT' 75  4) ;
TABESP2%ESP_STOE  ('PROG'  1. 1. )  ;
TABDON%GNVESP     1  TABESP1 ;
TABDON%GNVESP     2  TABESP2 ;
TABDON%GECHANGE   ('LECT' 75) ;
TABDON%GCLIM      TYP3  ('LECT' 50) ;
*
TB1 = 'CHI1' TABDON 'COMP' emp1 'LOGK' emp1 ;
*
********************************************************
*          Initialisation du transport
********************************************************
*
* CTOTC:concentrations au centre
* CTOT:traces de concentrations
* on se donne CTOT on en deduit CTOTC
*
TOTNA2 = 'MANU' 'CHPO' CEAB 1 X005 1.D-4;
TOTNA  = 'KCHT' MODHYB 'SCAL' 'FACE' 'COMP' X005 1.D-3 TOTNA2 ;
TOTK2  = 'MANU' 'CHPO' CEAB 1 X004 1.D-3  ;
TOTK   = 'KCHT' MODHYB 'SCAL' 'FACE' COMP X004 1.D-5 TOTK2 ;
TOTCL2 = 'MANU' 'CHPO' CEAB 1 X103 6.D-4   ;
TOTCL  = 'KCHT' MODHYB 'SCAL' 'FACE' COMP X103 5.1D-4 TOTCL2 ;
TOTH   = 'MANU' 'CHPO' FATOT 1 X050 0.D0 ;
TOT75  = 'MANU' 'CHPO' FATOT 1 X075  5.D-4 ;
CTOT   = TOTNA + TOTK + TOTCL + TOTH + TOT75 ;
TT1    = 'EXTR' CTOT 'COMP' ;
NOCOMP = 'EXTR' TT1 1 ;
CTOTC  = 'MANU' 'CHPO' CETOT 1 NOCOMP 0. ;
NBCOMP = 'DIME' TT1 ;
MASHYB = 'MHYB' MODHYB MAT1 ;
REPETER BOUC1 NBCOMP ;
  NOCOMP = 'EXTR' TT1 &BOUC1 ;
  TPR    = 'EXCO' CTOT NOCOMP 'TH' ;
  TPC    = 'HYBP' MODHYB  MASHYB TPR ;
  TPC    = 'NOMC' NOCOMP TPC ;
  CTOTC  = CTOTC + TPC ;
'FIN' BOUC1 ;
CFIONI = 'MANU' 'CHPO' CETOT 1 'SCAL' 0.001 ;
CLOGC  = 'MANU' 'CHPO' CETOT 5 X005 -2. X004 -2.
                               X103 -2.  X050 -4. X075 -5. ;
CCLIM  = 'MANU' 'CHPO' CETOT 1 W007 7.D0 ;
FFIONI = 'MANU' 'CHPO' FATOT 1 'SCAL' 0.001 ;
FLOGC  = 'MANU' 'CHPO' FATOT 5 X005 -2. X004 -2.
                               X103 -2.  X050 -4. X075 -5. ;
FCLIM  = 'MANU' 'CHPO' FATOT 1 W007 7.D0 ;
*
*    Initialisation des traces de concentrations  aqueux
*              à l'aide d'un calcul CHI2
*
TBPAR2 = 'OBJET'  PARMCHI2  ;
TBPAR2%GITMAX     80  ;
TBPAR2%GEPS       1.D-5 ;
TBPAR2%GNFI       4 ;
TBPAR2%GITERSOL   15 ;
TBPAR2%GIMPRIM    ('LECT' 1)  ;
TBDO2 = 'OBJET'   DONCHI2 ;
TBDO2%GFIONI      FFIONI ;
TBDO2%GLOGC       FLOGC ;
TBDO2%GTOT        CTOT ;
TBDO2%GCLIM       FCLIM ;
*
TB4   = 'CHI2' TB1 TBPAR2 TBDO2 ;
*
TAQU0 = TB4.AQUE  ;
TAQU  = TAQU0  ;
*
LIMAB= 'REDU' TAQU CEAB ;
********************************************************
*                      TRANSPORT
********************************************************
*
TABTRAN= TABLE ;
TABTRAN.'SOUSTYPE'     = MOT 'GEOCHIMIE' ;
TABTRAN.'MODELE'       = MODHYB ;
TABTRAN.'DIFFUSION'    = MAT1 ;
TABTRAN.'POROSITE'     = 'MANU' 'CHPO' CETOT 1 'CK' 1. ;
TABTRAN.'CONVECTION'   = QFACE ;
TABTRAN.'CHIMI1'       = TB1 ;
TABTRAN.'TAQU'         = TABLE;
TABTRAN.'TAQU'. 0      = TAQU ;
TABTRAN.ITMAX          = 80;
TABTRAN.EPS            = 1.D-6 ;
TABTRAN.NFI            = 4 ;
TABTRAN.ITERSOLI       = 15 ;
TABTRAN.FION           = TABLE ;
TABTRAN.FION. 0        = CFIONI ;
TABTRAN.LOGC           = TABLE ;
TABTRAN.LOGC. 0        =  CLOGC ;
TABTRAN.TOT            = TABLE ;
TABTRAN.TOT. 0         = CTOTC ;
TABTRAN.CLIM           = CCLIM ;
TABTRAN.SORTIE         = 'MOTS' 'FION'   ;
TABTRAN.'BLOCAGE'      = BBBAS ;
TABTRAN.'TRACE_IMPOSE' = 'CHARGEMENT' LIMAB
             ('EVOL' 'MANU' ('PROG' 0. 45.) (PROG 1. 1.) ) ;
*TABTRAN.'PRECISION'    = 1.D-4 ;
TABTRAN.'PAS_DE_TEMPS' = 0.5  ;
*TABTRAN.'TEMPS_FINAL'  =  45.  ;
TABTRAN.'TEMPS_FINAL'  = 5.  ;
TABTRAN.'THETA'        = 1.D0 ;
*
CHITRNSP TABTRAN ;
*
TITRE 'Test des flux ' ;
IPPI  = 1 ;
IPPF  = 10 ;
VOLG0 = 'DOMA' MMG0 'VOLUME'  ;
QQG0  = (TABTRAN.TOT. IPPF - TABTRAN.TOT. (IPPI-1) ) * VOLG0 ;
QQQQ  = 'RESULT' QQG0 ;
SI (GRAPH);
  LISMD   = 'MOTS' 'X004' ;
  DBTE1   = TRACHIS TABTRAN  'FLUX' ('LECT' 1 5 10) LISMD MAFACC ;
  DESTRA DBTE1 ;
  DBTE2   = TRACHIS TABTRAN  'FIXE' ('LECT' 1 5 10) MACENT ;
  DESTRA DBTE2 ;
  LISMB   = MOTS 'X005' ;
  DBTE3   = TRACHIS TABTRAN  'FLUX' ('LECT' 1 5 10) LISMB MAFACC ;
  DESTRA DBTE3 ;
  DBTE4   = TRACHIS TABTRAN  'FIXE' ('LECT' 1 5 10) LISMB MACENT ;
  DESTRA DBTE4 ;
  nnn7    = 'POINT' mafacc 7 ;
  nnn8    = 'POINT' mafacc 8 ;
  nnn9    = 'POINT' MAFACC 9 ;
  nnn10   = 'POINT' MAFACC 10 ;
  nnn11   = 'POINT' mafacc 11 ;
  nono    = nnn7 'ET' nnn8 'ET' nnn9 'ET' nnn10 'ET' nnn11 ;
  DBTEE   = TRACHIT TABTRAN  FLUX  LISMB NONO ;
  DESTRA DBTEE ;
  TBDES   = TRACHIS TABTRAN 'TOT'  ('LECT' 1 5 10) LISMD MACENT ;
  DESTRA TBDES ;
  TBDE7   = TRACHIS TABTRAN 'TAQU' ('LECT' 1 5 10) LISMD MAFACC ;
  DESTRA TBDE7 ;
  DESTRA TBDES ;
  DBTE8   = TRACHIS TABTRAN 'FLUX' ('LECT' 1 5 10) LISMC MAFACC ;
  DESTRA DBTE8 ;
  NORMA   = 'DOMA' MODHYB 'NORMALE' ;
  LMOCOMP = 'EXTR' TABTRAN.'FLUX'.IPPF 'COMP' ;
  NBCOMP  = 'DIME' LMOCOMP ;
  'REPETER' BOUCMP NBCOMP ;
    MOCOMP= 'EXTR' LMOCOMP &BOUCMP ;
    TITRE MOCOMP ;
    FIFY  = 'PSCAL' NORMA TABTRAN.'FLUX'.IPPF
                    ('MOTS' 'UY') ('MOTS' MOCOMP);
    EVFY  = 'EVOL' 'CHPO' FIFY 'SCAL' MAFACC ;
    'DESSIN' EVFY ;
  'FIN' BOUCMP ;
'FINSI' ;

FIA   = 'REDU' CEAB   TABTRAN.'FLUX'.(IPPI) ;
FIB   = 'REDU' CECCDD TABTRAN.'FLUX'.(IPPI) ;
SS1   = FIA + FIB ;
NNCAL = IPPF - IPPI ;
'REPETER' BOUBOU NNCAL ;
   FIA = REDU CEAB   TABTRAN.'FLUX'.(&BOUBOU + IPPI) ;
   FIB = REDU CECCDD TABTRAN.'FLUX'.(&BOUBOU + IPPI) ;
   SS1 = SS1 + FIA + FIB ;
'FIN' BOUBOU ;
SS    = ('RESULT' SS1) * DELTAT ;

ERRFLU= 'RESULT' (SS + QQQQ) ;
'LISTE' ERRFLU ;
DIFFLU= 'ABS' ERRFLU ;
'SI' (('MAXIMUM' DIFFLU) < 1.E-4 ) ;
   'ERRE' 0 ;
'SINO' ;
   'ERRE' 5 ;
'FINSI';

FIN ;






 

 

 

