Télécharger transport1VF_vs_EFMH.dgibi
* fichier : transport1_new.dgibi * ********************* CAS TEST : transport1.dgibi ******************** * GRAPH = FAUX ; CRIT1 = 1.D-6 ; 'SAUT' 'PAGE' ; * *--------------------------------------------------------------------- * TEST TRANSPORT1 * CALCUL DARCY ISOTROPE TRANSPORT. * Transport d'un front. * * dT * -- + div (uT - Kgrad(T)) = 0 * dt * * Ce test permet de verifier le bon fonctionnement des operateurs * utilises afin de resoudre l'equation de transport par diffusion * convection d'un champ scalaire passif par la methode d'elements * finis mixtes hybrides et VF implantes dans CASTEM2000. * Le decentrement est utilise. * * *--------------------------------------------------------------------- * *------------------ * Options generales *------------------ * * * *========= * MAILLAGE *========= * * *- Creation 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 = 20.D0 ; X0 = 0.D0 ; X1 = X0 + L ; Y0 = 0.D0 ; Y1 = Y0 + H ; INUMX = 141 ; INUMY = 17 ; DX = X1 - X0 / INUMX ; DY = H '/' INUMY ; * A1 = X0 Y0 ; A3 = X1 Y0 ; D1 = X0 Y1 ; D3 = X1 Y1 ; * *- Creation des DROITES frontieres * PELIM = DY / (100.D0) ; * *- Creation maillage GEOMETRIQUE * * *- Creation maillage HYBRIDE y compris sous-objets (cond. limites) * *DRMID = B1 'DROI' INUMX B3 ; *DRMIC = C1 'DROI' INUM1 C3 ; *EXT1 = 'MANU' 'POI1' B1 ; * * *================ * INITIALISATIONS *================ * * ---------------- * = MODELISATION = * ---------------- * * --------------------- * = Donnees physiques = * --------------------- * T0 = 0.D0 ; T1 = 100.D0 ; VX1 = 1.D0 ; VY1 = 0.D0 ; VK = 1.D-1 ; *MATI2 = KCHA MODHYB MATI2 'CHAM'; * FLU2 = CHYB1 * FLU1 ; * * ----------------------- * = Donnees transitoire = * ----------------------- * TETA : Parametre de le theta-methode * TMAX : Temps final * TSUP : Temps pour conditions aux limites * DELTAT : Pas de temps * TETA = 1.00D0 ; TMIN = 0.D0 ; TMAX = 60.00D0 ; TSUP = 1.2D0 * TMAX ; DELTAT = 1.0D-0 ; * * * ------------------------ * = Conditions initiales = * ------------------------ *TCHYB = 'MANU' 'CHPO' ('DOMA' MODHYB 'CENTRE') 1 'H' 1.D0 * 'NATURE' 'DISCRET' ; INUMX1 = INUMX '+' 1; INUMY1 = INUMY '+' 1; TCHYB = 'MASQUE' xcoor SUPERIEUR (0.2D0 * L); TCHYB = TCHYB * ( 'MASQUE' xcoor INFERIEUR (0.3D0 * L)); TCHYB = TCHYB * ( 'MASQUE' ycoor INFERIEUR (0.6D0 * H)); TCHYB = TCHYB * ( 'MASQUE' ycoor SUPERIEUR (0.4D0 * H)); * On rend la masse initiale independante du maillage. * * -------------- * = T imposee = * -------------- *opti donn 5; CHCLIM = TABLE; GEOL1 = TABLE; GEOL1 . 'TYPDISCRETISATION' = 'EFMH' ; GEOL1 . 'THETA_DIFFUSION' = 1.0D0 ; GEOL1 . 'THETA_CONVECTION' = 1.0D0 ; GEOL1 . 'DECENTREMENT' = FAUX ; GEOL1 . 'DELTAT' = 10.D15 ; * conduct en m/an GEOL1 . 'DIFFUSIVITE' = mati2 '/' vk ; GEOL1 . 'SOLVEUR' = 2 ; GEOL1 . 'PRECONDITIONNEUR' = 3 ; GEOL1 . 'CLIMITES' = CHCLIM ; GEOL1 . 'RECALCUL' = VRAI ; * *'OPTION' donn 5; QFACE1 = GEOL1 . 'FLUXDIFF' ; * * --------------------------- * = 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' = 1.D-10 * MATI2; Transp.'POROSITE' = 1.D0; Transp.'COEF_RETARD' = 1.D0; *Transp.'CONVECTION' = NOMC 'SCAL' FLU3 ; Transp.'VITELEM' = VCENT1 ; *Transp . 'ALPHAL' = MANU 'CHPO' (doma MODHYB centre) * 'SCAL' 1.D0; *Transp . 'ALPHAT' = MANU 'CHPO' (doma MODHYB centre) * 'SCAL' 0.D0; * Conditions initiales : Transp.'TEMPS'. 0 = TMIN ; Transp.'CONCENTRATION'. 0 = TCHYB; Transp.'FLUXDIFF'. 0 = 0.D0 * FLU3 ; Transp.'FLUXCONV'. 0 = 0.D0 * FLU3; * Conditions aux limites : *Transp . 'FLUXTOT_IMP' = TTT1 ; * Paramètres numeriques : Transp.'THETA_DIFF' = 1.D0; Transp.'THETA_CONVECTION' = 1.D0; Transp.'TYPDISCRETISATION' = 'EFMH'; Transp.'DECENTR' = VRAI; 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 * TCHYB; * ========== * | CALCUL | * ========== *======================= * Resolution transitoire *======================= * TRANSGEN TRANSP ; * * *================= * POST-TRAITEMENT *================= **************************************************************************** 'SI' (GRAPH) ; titre 'Premier champ de concentration' ; * titre 'Dernier champ de concentration calcule' ; 'FINSI' ; zozo = 0.D0; * ICour = (&BclFlT) ; * 'LISTE' ('MAXIMUM' ('RESULT' toto)); FlTCour = 'MAXIMUM' ('RESULT' toto) ; * 'LISTE' fltcour; 'FIN' BclFlT ; 'SI' (graph) ; 'DESSIN' EvMASS 'TITRE' 'evolution de la masse dans les fractures' ; 'FINSI' ; zozo = 0.D0; ICour = (&BclFlT) '-' 1 ; FlTCour = 'MAXIMUM' ('RESULT' LesFlCo) ; * 'LISTE' fltcour; zozo = zozo '+' (fltcour * (((Transp. 'TEMPS' . (ICour+1))) '-' ((Transp. 'TEMPS' . ICour)))); 'FINSI' ; 'FIN' BclFlT ; * XConvSY = 1.D0 ; LiTpsy = LiTps '/' (XConvSY) ; * 'SI' (GRAPH) ; 'DESSIN' EvFLT 'TITRE' ChTitr ; 'FINSI' ; * * * Pas de CORRECTION normale sortante à droite zozo = 0.D0; ICour = (&BclFlT) '-' 1 ; FlTCour = 'MAXIMUM' ('RESULT' LesFlCo) ; zozo = zozo '+' (fltcour * (((Transp. 'TEMPS' . (ICour+1))) '-' ((Transp. 'TEMPS' . ICour)))); 'FINSI' ; 'FIN' BclFlT ; LiTpsy = LiTps '/' (XConvSY) ; 'SI' (graph) ; 'DESSIN' EvFLT 'TITRE' ChTitr ; 'FINSI'; 'SI' (graph) ; 'DESSIN' (evflts '+' evflte '+' evmass) TITRE 'conservation masse totale'; 'FINSI' ; * Projection sur des SUPPORTS COMMUNS Bilan = evflts '+' evflteA '+' evmassA '-' 1.D0 ; 'MESS' 'conservation de la masse' err1; 'SI' (err1 > 1.D-11 ) ; 'MESS' 'mauvaise conservation de la masse:' err1 ; 'ERREUR' 5; 'SINON' ; * pas d'erreur de conservation ERCONSEF = VRAI; 'FINSI' ; **************post VF ******************************************** * on sauve la derniere concentration EFMH *-- Table de transport : Transp = 'TABLE'; Transp . 'MODELE' = MODHYB ; Transp.'TEMPS' = 'TABLE'; Transp.'CONCENTRATION' = 'TABLE'; Transp.'FLUXDIFF' = 'TABLE'; Transp.'FLUXCONV' = 'TABLE'; Transp.'CARACTERISTIQUES' = 1.D-10 * MATI2; Transp.'POROSITE' = 1.D0; Transp.'COEF_RETARD' = 1.D0; *Transp.'CONVECTION' = NOMC 'SCAL' FLU3 ; Transp.'VITELEM' = VCENT1 ; *Transp . 'ALPHAL' = MANU 'CHPO' (doma MODHYB centre) * 'SCAL' 1.D0; *Transp . 'ALPHAT' = MANU 'CHPO' (doma MODHYB centre) * 'SCAL' 0.D0; * Conditions initiales : Transp.'TEMPS'. 0 = TMIN ; Transp.'CONCENTRATION'. 0 = TCHYB; Transp.'FLUXDIFF'. 0 = 0.D0 * FLU3 ; Transp.'FLUXCONV'. 0 = 0.D0 * FLU3; * Conditions aux limites : *Transp . 'FLUXTOT_IMP' = TTT1 ; * Paramètres numeriques : Transp.'THETA_DIFF' = 1.D0; Transp.'THETA_CONVECTION' = 1.D0; Transp.'TYPDISCRETISATION' = 'VF'; Transp.'DECENTR' = VRAI; 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 * TCHYB; * ========== * | CALCUL | * ========== *======================= * Resolution transitoire *======================= * TRANSGEN TRANSP ; * * *================= * POST-TRAITEMENT *================= **************************************************************************** 'SI' (GRAPH) ; titre 'Premier champ de concentration' ; * titre 'Dernier champ de concentration calcule' ; 'FINSI' ; zozo = 0.D0; * ICour = (&BclFlT) ; * 'LISTE' ('MAXIMUM' ('RESULT' toto)); FlTCour = 'MAXIMUM' ('RESULT' toto) ; * 'LISTE' fltcour; 'FIN' BclFlT ; 'SI' (graph) ; 'DESSIN' EvMASS 'TITRE' 'evolution de la masse dans les fractures' ; 'FINSI' ; zozo = 0.D0; ICour = (&BclFlT) '-' 1 ; FlTCour = 'MAXIMUM' ('RESULT' LesFlCo) ; * 'LISTE' fltcour; zozo = zozo '+' (fltcour * (((Transp. 'TEMPS' . (ICour+1))) '-' ((Transp. 'TEMPS' . ICour)))); 'FINSI' ; 'FIN' BclFlT ; * XConvSY = 1.D0 ; LiTpsy = LiTps '/' (XConvSY) ; * 'SI' (GRAPH) ; 'DESSIN' EvFLT 'TITRE' ChTitr ; 'FINSI' ; * * * Pas de CORRECTION normale sortante à droite zozo = 0.D0; ICour = (&BclFlT) '-' 1 ; FlTCour = 'MAXIMUM' ('RESULT' LesFlCo) ; zozo = zozo '+' (fltcour * (((Transp. 'TEMPS' . (ICour+1))) '-' ((Transp. 'TEMPS' . ICour)))); 'FINSI' ; 'FIN' BclFlT ; LiTpsy = LiTps '/' (XConvSY) ; 'SI' (graph) ; 'DESSIN' EvFLT 'TITRE' ChTitr ; 'FINSI'; 'SI' (graph) ; 'DESSIN' (evflts '+' evflte '+' evmass) TITRE 'conservation masse totale'; 'FINSI' ; * Projection sur des SUPPORTS COMMUNS Bilan = evflts '+' evflteA '+' evmassA '-' 1.D0 ; 'MESS' 'conservation de la masse' err2; 'SI' ( err2 > 1.D-11 ) ; 'MESS' 'mauvaise conservation de la masse:' err2 ; 'ERREUR' 5; 'SINON' ; * pas d'erreur de conservation ERCONSVF = VRAI; 'FINSI' ; * On sauve la concentration VF finale **************** COMPAR VF - EFMH ********************************** toto = concEFMH '-' concVF ; toto = 'MAXIMUM' (('RESULT' toto)); titi = 'MAXIMUM' ('RESULT' titi); err3 = (toto '/' titi)**0.5D0; 'MESSAGE' 'erreur relative L2' err3; 'SI' (err3 > 1.D-2) ; 'ERREUR' 5 ; 'SINON' ; erEFVF = VRAI; 'FINSI' ; **************** POST HYDRAU **************************************** FLTotE = -1.D0 * FltotE; * FLux sortants * Affichage des resultats 'MESSAGE' 'Resultats hydraulique : ' ; 'MESSAGE' ' ' ; 'MESSAGE' ' ' ; 'MESSAGE' 'Keq associes ' Keq1 Keq2 ; 'SI' (erefvf 'ET' erconsvf 'ET' erconsef) ; 'ERREUR' 0; 'SINON' ; 'ERREUR' 5; 'FINSI' ; 'FIN';
© Cast3M 2003 - Tous droits réservés.
Mentions légales