* fichier : diffu1.dgibi
**----------------------------------------------------------------------*
* diffu1.dgibi : exemple d'utilisation du modele de DIFFUSION (FICK) *
* *
* On modelise la diffusion simulatee de 2 especes (C6, C8) dans un *
* massif semi-infini en imposant leur concentration au bord a t=0, *
* les concentrations en C6 & C8 etant nulles initialement. *
* On compare a la solution analytique. *
* Le calcul est realise avec PASAPAS. *
* *
*----------------------------------------------------------------------*
* 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) ;
* *
'SI' IG1 ;
'TITR'
' Maillage & C.L. : concentration imposee sur 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 = 2.E-18 ;
KD2 = 4.E-19 ;
MAT1 = 'MATE' MOD1 'KD' KD1 'CDIF' 1. ;
MAT2 = 'MATE' MOD2 'KD' KD2 'CDIF' 1. ;
* *
*------------------------- C.L. / CHARGEMENTS -------------------------*
* *
* Blocages : *
CL1 = 'BLOQ' L1 'C6' ;
CL2 = 'BLOQ' L1 'C8' ;
CL0 = CL1 'ET' CL2 ;
* *
* C1 / C2 : concentrations au bord : *
C1 = 0.8 ;
C2 = 0.5 ;
DCL1 = 'DEPI' CL1 C1 ;
DCL2 = 'DEPI' CL2 C2 ;
* *
* A Noter : concentrations imposees => chargement 'CIMP' : *
* Chargement : *
TFIN1 = 1800. ;
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 ;
CG0 = CG1 'ET' CG2 ;
* *
*------------------------------ PASAPAS -------------------------------*
* *
* A Noter : indice 'BLOCAGES_DIFFUSIONS' de la table PASAPAS ; *
* *
TAB1 = 'TABL' ;
TAB1 . 'MODELE' = MOD1 'ET' MOD2 ;
TAB1 . 'CARACTERISTIQUES' = MAT1 'ET' MAT2 ;
TAB1 . 'BLOCAGES_DIFFUSIONS' = CL0 ;
TAB1 . 'CHARGEMENT' = CG0 ;
TAB1 . 'RELAXATION_THETA' = 1. ;
TAB1 . 'TEMPS_CALCULES' = 'PROG' 0. 30. PAS 30. TFIN1 ;
*
PASAPAS TAB1 ;
*
*-------------------------- POST-TRAITEMENT ---------------------------*
* *
* Table legende dessins : *
TDESS1 = 'TABL' ;
TDESS1 . 3 = 'MOT' 'MARQ S LOSA NOLI' ;
TDESS1 . 4 = 'MOT' 'MARQ S LOSA NOLI' ;
TDESS1 . 'TITRE' = 'TABL' ;
TDESS1 . 'TITRE' . 1 = ' Concentration C6 ' ;
TDESS1 . 'TITRE' . 2 = ' Concentration C8 ' ;
TDESS1 . 'TITRE' . 3 = ' Reference C6 ' ;
TDESS1 . 'TITRE' . 4 = ' Reference C8 ' ;
* *
* Solutions analytiques : *
L2 = SG1 'COTE' 2 ;
LX0 = ('EVOL' 'CHPO' (L2 'COOR' 1) 'SCAL' L2) 'EXTR' 'ABSC' ;
L1 = 'PROG' ('DIME' LX0) * 1. ;
LX1 = 0.5 * LX0 * (KD1 ** -0.5) ;
LX2 = 0.5 * LX0 * (KD2 ** -0.5) ;
* *
* A Noter : indice 'CONCENTRATIONS' de la table PASAPAS ; *
* *
NB1 = 'DIME' (TAB1 . TEMPS) ;
LDESS1 = 'LECT' 1 PAS 10 NB1 ;
ERRM1 = 0. ;
I1 = 0 ;
'REPE' B1 NB1 ;
TPSI1 = TAB1 . 'TEMPS' . I1 ;
'SI' (I1 'EGA' 0 ) ;
LCI1 = 0. * L1 ;
LCI2 = 0. * L1 ;
'SINO' ;
LCI1 = C1 * (L1 - ('ERF' (LX1 / (TPSI1 ** 0.5)))) ;
LCI2 = C2 * (L1 - ('ERF' (LX2 / (TPSI1 ** 0.5)))) ;
'FINS' ;
EVREFI1 = 'EVOL' 'ROUG' 'MANU' 'SCAL' LX0 'C6' LCI1 ;
EVREFI2 = 'EVOL' 'VERT' 'MANU' 'SCAL' LX0 'C8' LCI2 ;
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 ;
ERRMI1 = 'MAXI' 'ABS' (LCI1 - ('EXTR' EVCI1 'ORDO')) / C1 ;
ERRMI2 = 'MAXI' 'ABS' (LCI2 - ('EXTR' EVCI2 'ORDO')) / C2 ;
ERRM1 = 'MAXI' ('PROG' ERRMI1 ERRMI2) ;
'SI' (&B1 'EGA' 2) ;
'MESS' ' **** Ecart relatif max. ./ ref. sur C6 & C8 : ' ;
'FINS' ;
'MESS' ' >' ERRM1 ;
'SI' (IG1 'ET' ('DANS' ('LECT' &B1) LDESS1)) ;
'TITR' ' Concentration au temps ' TPSI1 ' s' ;
'TRAC' (CHC6I1 'ET' CHC8I1) (SG1 'ET' SG2) ;
'DESS' (EVCI1 'ET' EVCI2 'ET' EVREFI1 'ET' EVREFI2) 'LEGE' TDESS1 ;
'FINS' ;
I1 = I1 + 1 ;
'FIN' B1 ;
* *
'SI' (ERRM1 '>' 5.E-3) ;
'OPTI' 'ECHO' 0 ;
'SAUT' 1 'LIGN' ;
'MESS'
'***** Ecart relatif max. / solution de ref. au dernier pas > 5.E-3 ' ;
'ERRE' 5 ;
'OPTI' 'ECHO' 1 ;
'FINS' ;
* *
'FIN' ;
* *
*----------------------------------------------------------------------*
© Cast3M 2003 - All rights reserved.
Disclaimer