Numérotation des lignes :

* fichier : diff1d-2.dgibi************************************************************************************************************************************************* NOM         : DIFF1D-2* DESCRIPTION : Exemple diffusion 1D en temporel*               Non stationary 1D diffusion equation**               Similar to diff1d.dgibi but more complex:*               + 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*************************************************************************'OPTION' 'DIME' 2 'ELEM' 'QUA8' ;interact = FAUX ;graph  = FAUX ;transp = VRAI ;*'DEBPROC' CALCUL ;'ARGUMENT' icini*'ENTIER' ;'ARGUMENT' idt*'ENTIER' ;'ARGUMENT' lnclk/'LOGIQUE' ;*'SI' ('NON' ('EXISTE' lnclk)) ;   lnclk = FAUX ;'FINSI' ;*nmail  = 10 ;nitma  = 10 ;* Time stepslndt  = 'PROG' 1.D-1 1.D-2 1.D-3 1.D-4 1.D-5 ;dt    = 'EXTRAIRE' lndt idt ;** Maillage (Mesh)*pA = 0. 0. ; pB = 1. 0. ;lt = 'DROIT' nmail pA pB ;bas = lt ;mt  = 'TRANSLATION' lt 1 (0. 1.) ;gau = 'COTE' 4 mt ;dro = 'COTE' 2 mt ;_bas = 'CHANGER' bas 'QUAF' ;_gau = 'CHANGER' gau 'QUAF' ;_dro = 'CHANGER' dro 'QUAF' ;_mt  = 'CHANGER' mt 'QUAF' ;'ELIMINATION' (_mt 'ET' _bas 'ET' _gau 'ET' _dro) 1.D-6 ;$mt = 'MODE' _mt 'NAVIER_STOKES' 'LINE' ;$bas = 'MODE' _bas 'NAVIER_STOKES' 'LINE' ;$gau = 'MODE' _gau 'NAVIER_STOKES' 'LINE' ;$dro = 'MODE' _dro 'NAVIER_STOKES' 'LINE' ;mt = 'DOMA' $mt 'MAILLAGE' ;bas = 'DOMA'$bas 'MAILLAGE' ;gau = 'DOMA' $gau 'MAILLAGE' ;dro = 'DOMA'$dro 'MAILLAGE' ;** Initial condition*'SI' ('EGA' icini 1) ;   cini = 'MANUEL' 'CHPO' mt 'SCAL' 0. ;   'FINSI' ;*'SI' ('EGA' icini 2) ;   cini = '+' ('MANUEL' 'CHPO' mt 'SCAL' 0.)              ('MANUEL' 'CHPO' gau 'SCAL' 1.) ;   'FINSI' ;** table EQEX (Problem definition)*rv = 'EQEX' 'NITER' 1 'OMEGA' 1. 'ITMA' 1     'OPTI' 'EF' 'IMPL' 'CENTREE'      'ZONE' $mt 'OPER' 'DFDT' 1. 'CNM1' dt 'INCO' 'CN' 'OPTI' 'EF' 'IMPL' 'CENTREE' 'ZONE'$mt 'OPER' 'LAPN' 1. 'INCO' 'CN'     'CLIM' gau 'CN' 'TIMP' 1.     'CLIM' dro 'CN' 'TIMP' 0. ;*     rv . 'INCO' = 'TABLE' 'INCO' ;rv . 'INCO' . 'CN'  = 'KCHT' $mt 'SCAL' 'SOMMET' cini ;rv . 'INCO' . 'CNM1' = 'KCHT'$mt 'SCAL' 'SOMMET' cini ;** Boucle en temps à la main* Manual time stepping loop*res = 'TABLE' ;res . 'icini' = icini ;res . 'bas' = bas ;res . 'TPS' = 'TABLE' ;res . 'CN'  = 'TABLE' ;ires = 1 ;cn = rv . 'INCO' . 'CN' ;res . 'TPS' . ires = rv . 'PASDETPS' . 'TPS' ;res . 'CN'  . ires = 'COPIER' cn ;'REPETER' iitma nitma ;   EXEC rv ;   ires = '+' ires 1 ;   cn = rv . 'INCO' . 'CN' ;   res . 'TPS' . ires = rv . 'PASDETPS' . 'TPS' ;   res . 'CN'  . ires = 'COPIER' cn ;   evc = 'EVOL' 'CHPO' cn 'SCAL' bas ;   evtot = evc ;   tabt = 'TABLE' ; tabt . 'TITRE' = 'TABLE' ;   tabt . 1 = 'CHAINE' 'TIRC MARQ CROI' ;*tabt . 1 = 'CHAINE' 'TIRC NOLI' ;   tabt . 'TITRE' . 1 = 'CHAINE' 'Sol. App.' ;   cht = 'CHAINE' 'Pdt = ' &iitma ;   'SI' graph ;      'SI' lnclk ;         'DESSIN' evtot 'TITX' 'X' 'TITY' 'C'                   'TITR' cht 'LEGE' tabt 'NCLK' ;      'SINON' ;         'DESSIN' evtot 'TITX' 'X' 'TITY' 'C'                   'TITR' cht 'LEGE' tabt ;      'FINSI' ;   'FINS' ;      'FIN' iitma ;'RESPRO' res ;'FINPROC' ;** Post-traitement* Post treatment*'DEBPROC' POST ;'ARGUMENT' res*'TABLE' ;'ARGUMENT' ipost*'ENTIER' ;'ARGUMENT' lnclk/'LOGIQUE' ;'SI' ('NON' ('EXISTE' lnclk)) ;   lnclk = FAUX ;'FINSI' ; 'OPTI' 'DIME' 3 ;icini = res . 'icini' ;bas = res . 'bas' ;rt = res . 'TPS' ;rc = res . 'CN' ;tm = 'TABLE' 'ESCLAVE' ;lt = 'PROG' ;lm = 'PROG' ;'REPETER' it ('DIME' rt) ;   ti = rt . &it ;   ci = rc . &it ;   mail = bas 'PLUS' ('NOMC' 'UZ' ci)  ;   mail = mail 'PLUS' (0. ('*' &it 0.1) 0.) ;   tm . &it = mail ;   lt = 'ET' lt ('PROG' ti) ;   lm = 'ET' lm ('PROG' ('MINIMUM' ci)) ;'FIN' it ;oeil = '*' (1.2 -2.4 1.3) 2. ;mtp = 'ET' tm ;'SI' ('EGA' ipost 1) ;   'SI' lnclk ;          'TRACER' oeil mtp  'NCLK' ;   'SINON' ;          'TRACER' oeil mtp ;   'FINSI' ;'FINSI' ;   'OPTI' 'DIME' 2 ;'SI' ('EGA' ipost 2) ;   evtot = 'EVOL' 'MANU' lt lm ;   tabt = 'TABLE' ;   tabt . 1 = 'CHAINE' 'TIRC MARQ CROI' ;*   tabt . 1 = 'CHAINE' 'TIRC NOLI' ;   'SI' lnclk ;      'DESSIN' evtot 'TITX' 't' 'TITY' 'Min c.'                'TITR' ('CHAINE' 'Minimum c(t)')                'LEGE' tabt 'NCLK' ;   'SINON' ;      'DESSIN' evtot 'TITX' 't' 'TITY' 'Min c.'                'TITR' ('CHAINE' 'Minimum c(t)')                'LEGE' tabt ;   'FINSI' ;             'FINSI' ;   'FINPROC' ;** Table contenant les choix des menus (menu entries)*tcini = 'TABLE' ;tcini . 1 = 'choc' ; tcini . 2 = 'smooth' ;ntcini = 'DIME' tcini ; itcini = 1 ;tdt = 'TABLE' ;tdt . 1 = 'dt=1.D-1' ; tdt . 2 = 'dt=1.D-2' ; tdt . 3 = 'dt=1.D-3' ;tdt . 4 = 'dt=1.D-4' ; tdt . 5 = 'dt=1.D-5' ;ntdt = 'DIME' tdt ; itdt = 1 ;tpost = 'TABLE' ;tpost . 1 = '3D' ; tpost . 2 = 'Min. c' ;ntpost = 'DIME' tpost ; itpost = 1 ;** Précalcul de tous les cas (Precompute all cases)*tprec = 'TABLE' ;'REPETER' b1 ntcini ;   tprec . &b1 = 'TABLE' ;   'REPETER' b2 ntdt ;      tprec . &b1 . &b2 = CALCUL &b1 &b2 VRAI ;   'FIN' b2 ;'FIN' b1 ;         *'SI' interact ;** Boucle d'affichage (Print loop)*'REPETER' bouc ;*   CALCUL itcini itadc VRAI ;   POST (tprec . itcini . itdt) itpost VRAI ;   cha = 'CHAINE' ' ' ;   ret = 'MENU' cha (tcini . itcini) (tdt . itdt) (tpost . itpost) ;   'SI' ('EGA' ret 'Quitter') ;      'QUITTER' bouc ;   'FINSI';   'SI' ('EGA' ret (tcini . itcini)) ; itcini = '+' itcini 1 ; 'FINSI' ;   'SI' (itcini > ntcini) ; itcini = 1 ; 'FINSI';   'SI' ('EGA' ret (tdt . itdt)) ; itdt = '+' itdt 1 ; 'FINSI' ;   'SI' (itdt > ntdt) ; itdt = 1 ; 'FINSI';   'SI' ('EGA' ret (tpost . itpost)) ; itpost = '+' itpost 1 ; 'FINSI' ;   'SI' (itpost > ntpost) ; itpost = 1 ; 'FINSI';'FIN' bouc ;'FINS' ;** Mes transparents* Lecture notes slides*'SI' transp ;'OPTI' 'TRAC' 'PS' ;*   POST (tprec . 1 . 1) 1 ;   POST (tprec . 1 . 4) 1 ;*   POST (tprec . 2 . 1) 1 ;   POST (tprec . 2 . 4) 1 ;* 'FINSI' ;   *'SI' interact ;   'OPTION' 'DONN' 5 ;'FINSI' ;    ** End of dgibi file DIFF1D-2*'FIN' ;

© Cast3M 2003 - Tous droits réservés.
Mentions légales