* fichier : diffu2.dgibi
*----------------------------------------------------------------------*
* diffu2.dgibi : exemple d'utilisation du modele de DIFFUSION (FICK) *
* *
* Diffusion COUPLEE de deux especes (C6 / C8) *
* *
* On modelise la diffusion simulatee de 2 especes (C6, C8) dans un *
* massif semi-infini en imposant les flux des deux especes au bord, *
* les concentrations en C6 & C8 etant initialement nulles. *
* *
* De plus, la diffusion des 2 especes est COUPLEE : on suppose que le *
* moteur de la diffusion est le gradient de C, C6 Et C8 etant deux *
* isotopes de la meme espece chimique. Ainsi, le vecteur courant de *
* diffusion de chaque espece depend du gradient de concentration de *
* chaque isotope : *
* j6 = -D6.grad(C) = -D6.grad(C6+C8) = -D6.grad(C6)-D6.grad(C8) *
* De meme : *
* j8 = -D8.grad(C) = -D8.grad(C6+C8) = -D8.grad(C6)-D8.grad(C8) *
* Les matrices de couplage sont ajoutees au blocages associes a la *
* diffusion. Elles sont calculees a partir des matrices de diffusivite *
* de chaque espece, en renommant le nom des inconnues sur lesquelles *
* elles agissent.
* *
*----------------------------------------------------------------------*
* IG1 = VRAI : affichage des traces ; *
IG1 = FAUX ;
* *
*------------------------------ MAILLAGE ------------------------------*
* *
OPTI DIME 2 ELEM QUA8 ;
* *
* Repere : *
O1 = 0. 0. ;
X1 = 1. 0. ;
Y1 = 0. 1. ;
* *
* Dimensions : *
DG1 = 15.E-9 ;
LG1 = 300.E-9 ;
* *
* Parametre / Maillage : *
NEX1 = 30 ;
L1 = O1 'DROI' 1 (DG1 * Y1) ;
SG1 = L1 'TRAN' (-1 * NEX1) 'DINI' 5.E-9 'DFIN' 20.E-9 (LG1 * X1) ;
L3 = SG1 'COTE' 3 ;
* *
'SI' IG1 ;
'TITR'
' Maillage & C.L. : flux imposes sur le bord rouge (L1) ' ;
'TRAC' 'QUAL' (SG1 'ET' (L1 'COUL' 'ROUG')) ;
'FINS' ;
* *
*--------------------- MODELE / CARACTERISTIQUES ----------------------*
* *
* L'option 'INCO' de 'MODE' permet de definir le nom des inconnues *
* primales et duales du modele (CO / QCO par defaut). *
* Attention ! limite a 2 caracteres pour le nom de l'inconnue primale *
MOD1 = 'MODE' SG1 'DIFFUSION' 'FICK' 'INCO' 'C6' 'QC6' ;
MOD2 = 'MODE' SG1 'DIFFUSION' 'FICK' 'INCO' 'C8' 'QC8' ;
KD1 = 1.E-18 ;
KD2 = 4.E-19 ;
MAT1 = 'MATE' MOD1 'KD' KD1 'CDIF' 1. ;
MAT2 = 'MATE' MOD2 'KD' KD2 'CDIF' 1. ;
* *
* MATRICES de COUPLAGE : *
* 1. on construit les matrices de diffusivite de chaque espece : *
DC6QC6 = 'RIGI' MOD1 MAT1 ;
DC8QC8 = 'RIGI' MOD2 MAT2 ;
* 2. on renomme les noms d'inconnues sur lesquelles elles agissent : *
* Pour DC6QC6, on a : C6 -> QC6, on veut : C8 -> QC6 : *
* Pour DC8QC8, on a : C8 -> QC8, on veut : C6 -> QC8 : *
* Attention ! il faut ajouter le mot-cle 'QUEL' pour indiquer a Cast3M *
* que les matrices assemblees formeront un systeme qui ne *
* sera pas symetrique (QUELconque). *
DC8QC6 = 'CHAN' 'INCO' DC6QC6 ('MOTS' 'C6') ('MOTS' 'C8')
('MOTS' 'QC6') ('MOTS' 'QC6') 'QUEL' ;
DC6QC8 = 'CHAN' 'INCO' DC8QC8 ('MOTS' 'C8') ('MOTS' 'C6')
('MOTS' 'QC8') ('MOTS' 'QC8') 'QUEL' ;
* *
*------------------------- C.L. / CHARGEMENTS -------------------------*
* *
* Blocages : *
* Par choix, on limite au bord la concentration relative des 2 especes *
* a leur valeur dans le milieu ext. & on la fixe nulle a l'autre bord :*
CL1 = 'BLOQ' 'MAXI' 'C6' L1 ;
CL2 = 'BLOQ' 'MAXI' 'C8' L1 ;
CL3 = 'BLOQ' 'C6' L3 ;
CL4 = 'BLOQ' 'C8' L3 ;
CL0 = CL1 'ET' CL2 'ET' CL3 'ET' CL4 ;
* Valeurs des limites Max. : *
C6L1 = 0.5 ;
C8L1 = 0.5 ;
DCL1 = 'DEPI' CL1 C6L1 ;
DCL2 = 'DEPI' CL2 C8L1 ;
* *
* Flux imposes : *
FLXC0 = KD1 / 100.E-9 ;
FLXC6 = 'FLUX' MOD1 L1 FLXC0 ;
FLXC8 = 'FLUX' MOD2 L1 FLXC0 ;
* *
* A Noter : concentrations imposees => chargement 'CIMP' : *
* : flux imposes => chargement 'QC..' : *
* Chargement : *
XNBH1 = 24. ;
XNBPAS1 = 1. ;
PAS1 = XNBPAS1 * XNBH1 ;
TFIN1 = XNBH1 * 3600. ;
LTPS1 = 'PROG' 0. TFIN1 ;
LAMP1 = 'PROG' 1. 1. ;
EV1 = 'EVOL' 'MANU' 'TEMP' LTPS1 'AMPL' LAMP1 ;
CG1 = 'CHAR' 'CIMP' DCL1 EV1 ;
CG2 = 'CHAR' 'CIMP' DCL2 EV1 ;
CG3 = 'CHAR' 'QC6 ' FLXC6 EV1 ;
CG4 = 'CHAR' 'QC8 ' FLXC8 EV1 ;
CG0 = CG1 'ET' CG2 'ET' CG3 'ET' CG4 ;
* *
*------------------------------ PASAPAS -------------------------------*
* *
* COUPLAGE : on rajoute les matrices de couplage : DC8QC6 et DC6QC8, *
* aux blocages de diffusion : *
* *
TAB1 = 'TABL' ;
TAB1 . 'MODELE' = MOD1 'ET' MOD2 ;
TAB1 . 'CARACTERISTIQUES' = MAT1 'ET' MAT2 ;
TAB1 . 'BLOCAGES_DIFFUSIONS' = CL0 'ET' DC8QC6 'ET' DC6QC8 ;
TAB1 . 'CHARGEMENT' = CG0 ;
TAB1 . 'RELAXATION_THETA' = 1. ;
TAB1 . 'TEMPS_CALCULES' = 'PROG' 0. PAS (TFIN1 / PAS1) TFIN1 ;
*
PASAPAS TAB1 ;
*
*----------------------------- AFFICHAGES -----------------------------*
* *
* Table legende dessins : *
TDESS1 = 'TABL' ;
TDESS1 . 3 = 'MOT' 'TIRR' ;
TDESS1 . 4 = 'MOT' 'TIRR' ;
TDESS1 . 5 = 'MOT' 'TIRR' ;
TDESS1 . 'TITRE' = 'TABL' ;
TDESS1 . 'TITRE' . 1 = ' Concentration C6 ' ;
TDESS1 . 'TITRE' . 2 = ' Concentration C8 ' ;
TDESS1 . 'TITRE' . 3 = ' C6 + C8 ' ;
TDESS1 . 'TITRE' . 4 = ' C6-C8 pas couples' ;
* *
* Solutions analytiques etat final sans couplage : *
L2 = SG1 'COTE' 2 ;
CHC6L2 = (LG1 - (L2 'COOR' 1) * C6L1 / LG1) 'NOMC' 'C6';
EVCREF1 = 'EVOL' 'JAUN' 'CHPO' CHC6L2 'C6' L2 ;
* *
NB1 = 'DIME' (TAB1 . TEMPS) ;
NBPAS2 = 'ENTI' (8. * XNBPAS1) ;
LDESS1 = 'LECT' 1 'PAS' 2 (NBPAS2 + 1) PAS NBPAS2 NB1 ;
I1 = 0 ;
'REPE' B1 NB1 ;
TPSI1 = TAB1 . 'TEMPS' . I1 ;
CHCI1 = TAB1 . 'CONCENTRATIONS' . I1 ;
CHC6I1 SG2 = (CHCI1 'EXCO' 'C6') SG1 'PLUS' (3. * DG1 * Y1) ;
CHC8I1 = CHCI1 'EXCO' 'C8' ;
EVCI1 = 'EVOL' 'ROUG' 'CHPO' CHCI1 'C6' L2 ;
EVCI2 = 'EVOL' 'VERT' 'CHPO' CHCI1 'C8' L2 ;
EVCI3 = (EVCI1 + EVCI2) 'COUL' 'BLAN' ;
'SI' (IG1 'ET' ('DANS' ('LECT' &B1) LDESS1)) ;
'TITR' ('CHAI' ' Concentration a '
'FORMAT' '(F4.1)' (TPSI1 / 3600.) ' h') ;
'SI' (&B1 'NEG' NB1) ;
'TRAC' (CHC6I1 'ET' CHC8I1) (SG1 'ET' SG2) ;
'DESS' (EVCI1 'ET' EVCI2 'ET' EVCI3) 'LEGE' TDESS1 ;
'SINO' ;
'TITR' ' Concentration au temps final (24 h) ' ;
'TRAC' (CHC6I1 'ET' CHC8I1) (SG1 'ET' SG2) ;
'DESS' (EVCI1 'ET' EVCI2 'ET' EVCI3 'ET' EVCREF1) 'LEGE' TDESS1 ;
'FINS' ;
'FINS' ;
I1 = I1 + 1 ;
'FIN' B1 ;
* *
'FIN' ;
* *
*----------------------------------------------------------------------*
© Cast3M 2003 - All rights reserved.
Disclaimer