* fichier : precipite1VF.dgibi
*
********************* CAS TEST : transport1.dgibi ********************
*
GRAPH = 'N' ;
'OPTI' 'ECHO' 1 ;
CRIT1 = 1.D-3 ;
'SAUT' 'PAGE' ;
*
*---------------------------------------------------------------------
* TEST TRANSPORT1
* uniquement de la précipitation cinétique ordre 1
* tout uniforme - pas de vitesse
* revient à resoudre Rw dC/dt = codis w (limsol - C)
* d(1-w)F/DT = - codis w (limsol -C)
* solution C(t) = limsol * (1 - exp(-codis * t /R))
*
* pour une quantité initiale suffisante de précipité
*
* F(t) = F(0) - (C(t) * w * R / (1 - w))
*
*---------------------------------------------------------------------
*
*------------------
* 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 = 1.D0 ;
HS2 = H/2.D0 ;
X0 = 0.D0 ;
X1 = X0 + L ;
Y0 = 0.D0 ;
Y1 = Y0 + H ;
INUMX = 10 ;
INUMY = 1 ;
INUM1 = INUMX - 1 ;
DX = X1 - X0 / INUMX ;
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 = DX / (5. * INUMX) ;
*
*- Creation maillage GEOMETRIQUE
*
PTOT1 = 'DALL' DRBAS DRGAU DRHAU DRDRO ;
PTOT1 = 'ORIE' PTOT1 ;
*
*- Creation maillage HYBRIDE y compris sous-objets (cond. limites)
*
QFTOT= 'CHAN' PTOT1 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' ;
*
* ---------------------
* = Donnees physiques =
* ---------------------
*
* ---------------------
* DIFFUSIVITE
* ---------------------
VK = 1.D-0 ;
MATI2 = MANU 'CHPO' ('DOMA' MODHYB 'CENTRE') 'K' VK ;
* ---------------------
* VITESSE
* ---------------------
VX1 = 1.D0 ; VY1 = 0.D0 ;
*
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' ;
*
* -----------------------
* Donnees transitoire
* -----------------------
*
TETA = 1.00D0 ;
TMIN = 0.D0 ;
TMAX = 30.00D0 ;
TSUP = 1.2D0 * TMAX ;
DELTAT = 0.250D0 ;
*
LICALC = 'PROG' TMIN 'PAS' DELTAT TMAX ;
LISAUV = LICALC ;
*
* ------------------------
* Conditions initiales
* ------------------------
T0 = 0.D0 ;
CINI = 'MANU' 'CHPO' ('DOMA' MODHYB 'CENTRE') 1 'H' T0
'NATURE' 'DISCRET' ;
* --------------
* T imposée
* --------------
TGAUCHE = 0.D0 ;
T1 = TGAUCHE;
TGAUCHE = 'KCHT' MODGAU SCAL CENTRE (1.D0 * TGAUCHE);
TGAUCHE = 'CHAR' TGAUCHE
('EVOL' 'MANU' ('PROG' 0. TSUP) ('PROG' 1. 1.));
*
* ---------------------------
* = 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' = MATI2;
Transp.'POROSITE' = 0.2D0;
Transp.'COEF_RETARD' = 10.D0;
*Transp.'CONVECTION' = 0.D0 * SPEED ;
*Transp.'VITELEM' = 0.D0 * SPEEDC ;
*Transp . 'ALPHAL' = MANU 'CHPO' (doma MODHYB centre)
* 'SCAL' 1.D0;
*Transp . 'ALPHAT' = MANU 'CHPO' (doma MODHYB centre)
*Transp.'DECROISSANCE' = ('LOG' 2.D0) '/' 5.D0;
* 'SCAL' 0.D0;
* Conditions initiales :
Transp.'TEMPS'. 0 = TMIN ;
Transp.'CONCENTRATION'. 0 = CINI ;
Transp.'FLUXDIFF'. 0 = 'MANUEL' 'CHPO'
(doma MODHYB face) 'SCAL' 0.D0 ;
Transp.'FLUXCONV'. 0 = 'MANUEL' 'CHPO'
(doma MODHYB face) 'SCAL' 0.D0 ;
* Conditions aux limites DIRICHLET à gauche:
*Transp . 'TRACE_IMPOSE' = TGAUCHE ;
* CONDITION FLUX MIXTE à gauche
*Transp . 'FLUXTOT_IMP' = TGAUCHE ;
* Fluxdiffusif a gauche
Transp . 'FLUX_IMPOSE' = TGAUCHE ;
* Paramètres numériques :
Transp.'THETA_DIFF' = 1.D0;
Transp.'THETA_CONV' = 1.D0;
Transp.'THETA_DEC' = 0.5D0;
Transp.'LUMP' = FAUX;
Transp.'TYPDISCRETISATION' = 'VF';
Transp.'DECENTR' = VRAI;
Transp.'NUM_PECLET' = 2.D0;
Transp.'SEUILCALC' = 1.D-15;
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 * CINI;
* Precipité
* CE SONT DES CHAMPS . A CORRIGER
Transp . 'LIMITE_SOLUBILITE' = MANU 'CHPO' (doma MODHYB centre)
'SCAL' 0.25D0;
Transp . 'COEF_DISSOLUTION' = MANU 'CHPO' (doma MODHYB centre)
'SCAL' 2.5D0 ;
Transp . 'PRECIPITE' = 'TABLE' ;
Transp . 'PRECIPITE' . 0 = MANU 'CHPO' (doma MODHYB centre)
'SCAL' 1.D0;
Transp . INTPREC = TABLE;
Transp . INTPREC . 0 = 0.D0 * CINI;
* IL FAUT UN INDICE DISSOLUTION
Transp . 'DISSOLUTION' = 'TABLE' ;
Transp . 'DISSOLUTION' . 0 = 0.D0 * CINI;
* TESTER UN TERME SOURCE; TESTER UNE SEULE MAILLE,
* TESTER CONVECTION PURE ...... TRES IMPORTATN
* TESTER DECROISSANCE '-' filiation
* TESTER FLUX imposés, dissolution, precipitation
* retard poros, diffusion seule.
* changer poros ne devrait rien change 'SAUF' niveau source
* ==========
* | CALCUL |
* ==========
*=======================
* Resolution transitoire
*=======================
*
TRANSGEN TRANSP ;
*
*
*=================
* POST-TRAITEMENT
*=================
TRANS2 = TABLE TRANSP;
*
*--------------------------------------------------------------------
* Dans chaque cas on trace
* La trace de concentration le long de DRMID
* La concentration le long de DRMIC
*--------------------------------------------------------------------
* Tests de NON-REGRESSION :
* Principe du maximum
* Position du centre de gravité du champ de concentration
*--------------------------------------------------------------------
*
* Critères numériques
CFL = VX1 * DELTAT / DX ;
PEK = VX1 * DX / (2. * VK) ;
FOU = 2. * VK * DELTAT / (DX * DX) ;
'SAUT' 1 'LIGNE' ;
'MESS' ' Critères numériques ' ;
'MESS' ' CFL ' CFL ;
'MESS' ' PECLET ' PEK ;
'MESS' ' FOURIER ' FOU ;
'MESS' ' ' ;
*
XC YC = 'COOR' (DOMA MODHYB 'CENTRE') ;
ISOR1 = INDEX ( TRANS2 . 'TEMPS') ;
NTSOR = DIME ISOR1 ;
NTSO1 = NTSOR - 1 ;
IOK = FAUX ;
IRESU = 1 ;
*
*-----------------------
REPETER VISURESU NTSO1 ;
*-----------------------
*
IRESU = IRESU + 1 ;
INDI1 = ISOR1.IRESU ;
TTRA = TRANS2 . 'TEMPS' . INDI1 ;
EPR1 = TRANS2 . 'CONCENTRATION' . INDI1 ;
*
'SI' ('NEG' GRAPH 'N' ) ;
LTI2 = 'CHAINE' 'Front 1D-h temps ' TTRA ;
'TITR' LTI2 ;
drmil = 'QUELCONQUE' 'SEG2' ('EXTRAIRE' epr1 maillage) ;
drmil = 'INVERSE' drmil ;
AV2 = 'EVOL' 'ROUG' 'CHPO' EPR1 'H' drmil ;
* 'DESS' AV2 'MIMA' 'NCLK' ;
toto = 'KCHA' modhyb epr1 'CHAM';
'TRACER' modhyb toto 'NCLK';
'FINS' ;
* concentration au temps t
conct = maxi EPR1 ;
limsol = Transp . 'LIMITE_SOLUBILITE' ;
retard = Transp . 'COEF_RETARD' ;
codis = transp . 'COEF_DISSOLUTION' ;
solu = limsol *
(1.D0 - (exp (-1.D0 * codis * ttra / retard))) ;
solu = 'MAXIMUM' solu;
errconc = 'ABS' (conct - solu / solu) ;
'MESSAGE' 'erreur concentration' errconc;
*
*-------------
FIN VISURESU ;
*-------------
'SI' (errconc > CRIT1 ) ;
'ERRE' 5 ;
'SINO' ;
'ERRE' 0 ;
'FINSI' ;
*
'FIN' ;
*
*'FIN' ;
© Cast3M 2003 - All rights reserved.
Disclaimer