Download diffu1.dgibi

Back to the list

* 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