* fichier : gacul.dgibi ************************************************************************ ************************************************************************ GRAPH = FAUX ; ******************** CAS TEST : gacul.dgibi ************************ * * * Test de fonctionnement de DARCYSAT en 2D avec effet de gravite * ============================================================== * Infiltration d'eau dans une colonne verticale de sable uniformément * désaturé. * * - condition initiale : désaturation uniforme correspondant à une * succion de 1,15 m ; * - a l'instant initial, une extrémité de la colonne est noyée. * La frontière est supposée rester a pression nulle ; * * =================================================================== * Les options de modélisation declarées dans la table transmise à * la procédure DARCYSAT sont les suivantes : * * * - les effets gravitationnels sont pris en compte (indice GRAVITE de * valeur VRAI); * * - Une liste de temps de sauvegarde est fournie en valeur de l'indice * TEMPS_SAUVES ; * * - Le pas de temps est d'abord automatique (indice TEMPS_CALCULES absent) * L'utilisateur fournit * > le pas de temps initial (indice 'DT_INITIAL'), * > le nombre d'itérations recherché par pas de temps (indice 'NITER') * > le nombre de pas de temps (indice 'NPAS') * * - Une sous-relaxation de 0,8 est prise en compte (indice SOUSRELAX) * * - L'homogenéisation spatiale des propriétes physiques s'effectue * par moyenne arithmétique des valeurs obtenues aux faces (indice * HOMOGENEISATION de valeur DECENTRE) * *!!!!!!!!!!!!!!!!!!!!!!!! * - La précision de convergence demandée est de 0,5 mm (indice RESIDU_MAX) * cas test tiré du rapport DMT 97/25 : * "Implémentation dans CASTEM 2000 d'un modèle de transfert hydrique * en milieu poreux non saturé" * * ********************* CAS TEST : gacul.dgibi ************************ 'OPTION' 'ECHO' 1 ; 'SAUTER' 'PAGE'; * *-------------------------------------------------------------------- * Création maillage * *- Discrétisation : ENX = 1 ; ENY = 200 ; *- Création des points et des droites * A0 = -.5 1.0D0; B0 = .5 1.0D0; A1 = -.5 0.5D0; B1 = .5 0.5D0; A2 = -.5 0.25D0; B2 = .5 0.25D0 ; A3 = -.5 0.0D0; B3 = .5 0.0D0 ; *- Création des droites * AB0 = 'DROIT' ENX A0 B0 ; AB1 = 'DROIT' ENX A1 B1 ; AB2 = 'DROIT' ENX A2 B2 ; AB3 = 'DROIT' ENX A3 B3 ; *- Creation des surfaces * MASSIF0 = AB3 'REGLER' AB2 'REGLER' AB1 'REGLER' AB0 ; ENTR = 'COULEUR' ('INVERSE' AB0) 'ROUGE' ; 'SI' GRAPH ; 'FINSI' ; *- Creation des maillages contenant tous les points * QFTOT = 'CHANGER' MASSIF0 'QUAF' ; QFENTR = 'CHANGER' ENTR 'QUAF' ; 'ELIMINATION' 0.00001 (QFTOT 'ET' QFSORT 'ET' QFENTR) ; *- Modèles * MODHYB = 'MODELE' QFTOT 'DARCY' 'ISOTROPE' ; MODENTR = 'MODELE' QFENTR 'DARCY' 'ISOTROPE' ; MODSORT = 'MODELE' QFSORT 'DARCY' 'ISOTROPE' ; *- ordonnées * *- Création ligne de suivi pour le post-traitement et le test * ligne des points centres (cas 1D) * 'REPETER' BCL (ENY - 1) ; IP = &BCL ; JP = IP + 1 ; PI = 'POINT' HYCEN IP ; PJ = 'POINT' HYCEN JP ; 'SI' (IP 'EGA' 1); 'SINON' ; 'FINSI' ; FIN BCL ; *-------------------------------------------------------------------- *- pression initiale (metre d'eau) dans le sable HN = -1.15 ; *-------------------------------------------------------------------- *- Conditions aux limites *- frontière en limite du domaine de calcul (milieu désaturé) *- frontière mouillée *- chargement des CLs *-------------------------------------------------------------------- *- initialisation des inconnues * (doit être compatible avec les conditions aux limites) * *- trace de charge d'eau *- charge d'eau *- flux * --------------------------- * = Table DARCY_TRANSITOIRE = * --------------------------- *- initialisation table SATUR = 'TABLE' ; SATUR. 'TEMPS' = 'TABLE' ; SATUR. 'CHARGE' = 'TABLE' ; SATUR . 'ITMAX' = 20; *- données géommétriques SATUR. 'SOUSTYPE' = 'DARCY_TRANSATUR' ; SATUR. 'MODELE' = MODHYB ; *- instant initial SATUR. 'TEMPS' . 0 = 0. ; SATUR. 'CHARGE' . 0 = H0 ; *- conditions aux limites et chargements *SATUR. 'BLOCAGES_DARCY' = BSORT 'ET' BENTR ; *SATUR. 'CHARGEMENT' = VALI0 ; SATUR . 'TRACE_IMPOSE' = VALI0 ; SATUR . 'TYPDISCRETISATION' = 'EFMH' ; * GBM MODIFIE TABRES = table METHINV; TABRES . 'TYPINV' = 2; TABRES . 'PRECOND' = 5; SATUR . 'METHINV' = TABRES; SATUR . 'METHINV' . RESID = 1.D-20; *- données physiques * loi de perméabilité LoiP = 'TABLE' 'PUISSANCE'; LoiP.'ALPHA' = 7.3 ; LoiP.'PERMSAT' = 5.85E-2 / 3600. ; SATUR.'LOI_PERMEABILITE' = 'TABLE' LoiP ; * loi de succion LoiS = 'TABLE' 'VAN_GENUCHTEN'; LoiS. 'PORO' = 0.3 ; LoiS. 'TERESIDU' = 0.055 ; LoiS. 'NEXP' = 2.0304 ; LoiS. 'MEXP' = 0.5075 ; LoiS. 'BHETA' = 0.029227 * 100. ; SATUR.'LOI_SATURATION' = 'TABLE' LoiS ; * gravité (rho_w g, en mètres d'eau, vaut 1) SATUR. 'FORCE_GRAVITE' = 1.; *- données numériques SATUR. 'SOUS_RELAXATION' = 1.0D0; SATUR. 'TEMPS_FINAL' = 3000. ; SATUR. 'HOMOGENEISATION' = 'CHAINE' 'DECENTRE' ; SATUR. 'NPAS' = 1000 ; SATUR. 'RESIDU_MAX' = 1.D-2 ; SATUR. 'NITER' = 12 ; SATUR. 'DT_INITIAL' = 5. ; *SATUR. 'MESSAGES' = 0 ; 'SI' GRAPH ; *-------------------------------------------------------------------- *--- Visualisation de la loi de capacité capillaire. * droite support des variables dx = 'DROIT' (0. -1.15 ) 1000 (0. 0.) ; * calcul de la teneur en eau pour la pression zc TAB = 'TABLE' ; 'DESSIN' evt 'TITX' 'Pc(m)' 'TITY' 'S(%)' 'TITRE' 'Loi capillaire S(Pc)' ; * calcul de la teneur en eau pour la pression zc - dp dp = 1.e-4 ; * représentation de la capacité c1 = (t0 - t1) / dp; 'TITRE' 'Capacite capillaire' ; 'FINSI' ; * =========================== * | CALCUL | * =========================== DARCYSAT SATUR ; * Post-traitement * =============== *-- Test de non régression * Le test est effectué en vérifiant la solution à 1 heure de temps physique *- solution a 1 heure de temps physique -0.22041 -0.15351 -0.11533 -8.84629E-02 -6.74391E-02 -4.98338E-02 -3.43395E-02 -2.01365E-02 -6.63732E-03 ; *- construction de la pression aux centres SATUR.'PRESSION' = 'TABLE' ; id = &bb - 1 ; HN = SATUR.'CHARGE'.id ; 'FIN' bb ; *ev = 'EVOL' 'CHPO' SATUR.'PRESSION'. 4 'SCAL' LCENC ; *lp2 = 'EXTR' ev 'ORDO' ; *err1 = 'MAXIMUM' ('ABS' (lp - lp2)) ; *mess 'régression : ' err1 ; *-- Tracé (tous les temps) 'SI' GRAPH ; 'FINSI' ; err = 'ABS' (inta '+' 0.235 '/' 0.235); 'LISTE' err; 'SI' (err > 2.D-2) ; 'ERREUR' 5; 'FINSI' ; 'FIN';
© Cast3M 2003 - Tous droits réservés.
Mentions légales