* fichier : fluechnak.dgibi
GRAPH = faux ;
******************** CAS TEST : fluechnak.dgibi **********************
* --------------------------------------------------------------------
*
* TRANSPORT GEOCHIMIE
*
* ECHANGE IONIQUE AVEC BILAN DE FLUX
*
* --------------------------------------------------------------------
'OPTION' 'ECHO' 0 ;
'SAUTER' 'PAGE';
* emplacement de COMPOM
emp1 = 'MOT' '/u/castem/divers/COMPOM' ;
*emp1 = 'MOT' 'COMPOM' ;
*emp1 = 'MOT' '/export/home/castem2001/DGIBI/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 ;
© Cast3M 2003 - All rights reserved.
Disclaimer