* fichier : cd_clim.dgibi ************************************************************************ ************************************************************************ * NOM : CD_CLIM * DESCRIPTION : Calcul d'un problème de convection-diffusion illustrant * l'importance de l'intégration par parties sur les * conditions aux limites. * 2D Convection-diffusion problem with a focus on the * integration by parts' influence on the boundary * conditions. * + interactive GUI (interact = vrai) * + slide generation for the lecture notes (transp = vrai) * * * See: * ENSTA Lecture Notes 2021 * Introduction to the finite element method applied to * incompressible fluid mechanics (in english) * Introduction a la methode des elements finis en * mecanique des fluides incompressibles (en francais) * Stephane GOUNAND and Sergey KUDRIAKOV * http://www-cast3m.cea.fr/index.php?xml=supportcours * * * LANGAGE : GIBIANE-CAST3M * AUTEUR : Stéphane GOUNAND (CEA/DEN/DM2S/SFME/LTMF) * mél : gounand@semt2.smts.cea.fr ********************************************************************** * VERSION : v1, 25/09/2007, version initiale * HISTORIQUE : v1, 25/09/2007, création ************************************************************************ * interact = FAUX ; transp = VRAI ; * 'DEBPROC' CALCUL ; 'ARGUMENT' ikonv*'ENTIER' ; 'ARGUMENT' iPe*'ENTIER' ; 'ARGUMENT' isupg*'ENTIER' ; 'ARGUMENT' itrac*'ENTIER' ; 'ARGUMENT' lnclk/'LOGIQUE' ; * 'SI' ('NON' ('EXISTE' lnclk)) ; lnclk = FAUX ; 'FINSI' ; * * nmail = 10 ; kvit = 'LINE' ; * Pe = 'EXTRAIRE' lPe iPe ; 'SI' ('EGA' ikonv 1) ; mkonv = 'NOCONS' ; 'SINON' ; mkonv = 'CONS' ; 'FINSI' ; 'SI' ('EGA' isupg 1) ; msupg = 'CENTREE' ; niter = 1 ; omega = 1. ; 'FINSI' ; 'SI' ('EGA' isupg 2) ; msupg = 'SUPG' ; niter = 1 ; omega = 1. ; 'FINSI' ; 'SI' ('EGA' isupg 3) ; msupg = 'SUPGDC' ; niter = 10 ; omega = 0.7 ; 'FINSI' ; * * Maillage (Mesh) * p0 = 0. 0. ; p1 = 1. 0. ; lt = 'DROIT' nmail p0 p1 ; mt = 'TRANSLATION' lt nmail (0. 1.) ; *mt = 'TRANSLATION' lt nmail (0. iang) ; cmt = 'CONTOUR' mt ; hau = 'INVERSE' hau ; _bas = 'CHANGER' bas 'QUAF' ; _dro = 'CHANGER' dro 'QUAF' ; _hau = 'CHANGER' hau 'QUAF' ; _gau = 'CHANGER' gau 'QUAF' ; _mt = 'CHANGER' mt 'QUAF' ; 'ELIMINATION' (_mt 'ET' _bas 'ET' _gau 'ET' _dro 'ET' _hau) 1.D-6 ; cmt = bas 'ET' dro 'ET' hau 'ET' gau ; * * Conditions aux limites (Boundary conditions) * mdiri = hau 'ET' gau 'ET' bas ; * Champ de vitesses (velocity field) ymt = 'COORDONNEE' 2 mt ; mymt = '*' ('-' ymt 1.) -1. ; * * table EQEX (Problem description) * 'OPTI' 'EF' 'IMPL' msupg mkonv 'ZONE' $mt 'OPER' 'KONV' Pe 'UN' 1. 'INCO' 'TN' 'OPTI' 'EF' 'IMPL' 'CENTREE' 'ZONE' $mt 'OPER' 'LAPN' 1. 'INCO' 'TN' 'CLIM' 'TN' 'TIMP' mdiri 1. ; * rv . 'INCO' = 'TABLE' 'INCO' ; rv . 'INCO' . 'UN' = un ; * EXEC rv ; * tn = rv . 'INCO' . 'TN' ; * * Post-traitement (Post-treatment) * 'SI' ('EGA' itrac 1) ; 'SI' lnclk ; 'TRACER' tn mt cmt vun 16 'NCLK' ; 'SINON' ; 'TRACER' tn mt cmt vun 16 ; 'FINSI' ; 'FINSI' ; 'SI' ('EGA' itrac 2) ; dep = '/' dep ('MAXIMUM' dep 'ABS') ; oeil = '*' (-2.1 -2.4 2.3) 2. ; 'FORME' dep ; 'SI' lnclk ; 'TRACER' 'CACH' oeil tn mt 16 'NCLK' ; 'SINON' ; 'TRACER' 'CACH' oeil tn mt 16 ; 'FINSI' ; 'FINSI' ; 'FINPROC' ; * 'SI' interact ; * * Table contenant les choix des menus (Menu entries) * tko = 'TABLE' ; tko . 1 = 'NOCONS' ; tko . 2 = 'CONS' ; * tPe = 'TABLE' ; tPe . 1 = 'Pe=1.' ; tPe . 2 = 'Pe=10.' ; tPe . 3 = 'Pe=20.' ; tPe . 4 = 'Pe=50' ; tPe . 5 = 'Pe=100' ; * tsu = 'TABLE' ; tsu . 1 = 'CENTREE' ; tsu . 2 = 'SUPG' ; tsu . 3 = 'SUPGDC' ; * ttr = 'TABLE' ; ttr . 1 = '2D' ; ttr . 2 = '3D' ; * * Boucle d'affichage (Print loop) * 'REPETER' bouc ; CALCUL itko itPe itsu ittr VRAI ; cha = 'CHAINE' 'Convection-diffusion sortie naturelle' ; (ttr . ittr) ; 'SI' ('EGA' ret 'Quitter') ; 'QUITTER' bouc ; 'FINSI'; 'SI' ('EGA' ret (tko . itko)) ; itko = '+' itko 1 ; 'FINSI' ; 'SI' (itko > ntko) ; itko = 1 ; 'FINSI'; 'SI' ('EGA' ret (tPe . itPe)) ; itPe = '+' itPe 1 ; 'FINSI' ; 'SI' (itPe > ntPe) ; itPe = 1 ; 'FINSI'; 'SI' ('EGA' ret (tsu . itsu)) ; itsu = '+' itsu 1 ; 'FINSI' ; 'SI' (itsu > ntsu) ; itsu = 1 ; 'FINSI'; 'SI' ('EGA' ret (ttr . ittr)) ; ittr = '+' ittr 1 ; 'FINSI' ; 'SI' (ittr > nttr) ; ittr = 1 ; 'FINSI'; 'FIN' bouc ; 'FINS' ; * * Mes transparents * Lecture notes slides * 'SI' transp ; CALCUL 1 1 1 1 ; CALCUL 2 1 1 1 ; 'FINSI' ; * 'SI' interact ; 'OPTION' 'DONN' 5 ; 'FINSI' ; * * End of dgibi file CD_CLIM * 'FIN' ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales