* fichier : conem.dgibi ************************************************************************ ************************************************************************ *=--------------------------------------------------------------------- *= Transport d'un cone par un champ de vitesse à rotationnel constant. *= Comparaison de schéma en temps EF implicites *=--------------------------------------------------------------------- * *------------------ * Options générales *------------------ * GRAPH = 'N' ; ERR1=5.e-5 ; COMPLET = FAUX ; SI ( COMPLET ) ; DIAM=2. ; SINON ; DIAM=0.5 ; FINSI ; DISCR='MACRO' ; * *========= * MAILLAGE *========= * * *- Création des points supports des DROITES * L = 2.D0 ; LS2 = L / 2.D0 ; H = L ; HS2 = H / 2.D0 ; X0 = -1.D0 * LS2 ; X1 = X0 + L ; Y0 = -1.D0 * HS2 ; Y1 = Y0 + H ; INUMX = 20 ; INUMY = INUMX ; XNUMY = 'FLOT' INUMX ; INUX1 = INUMX - 1 ; INUY1 = INUMY - 1 ; X01 = X0 + X1 * 0.5D0 ; Y01 = Y0 + Y1 * 0.5D0 ; DX = X1 - X0 / INUMX ; DY = Y1 - Y0 / INUMY ; DX1 = DX / 2.D0 ; DY1 = DY / 2.D0 ; * B1 = X0 Y0 ; B3 = X1 Y0 ; H1 = X0 Y1 ; H3 = X1 Y1 ; * * *- Création des DROITES frontieres * DRCOT = DRBAS 'ET' DRDRO 'ET' DRGAU 'ET' DRHAU ; PELIM = DX1 / (5.D0 * INUMX) ; * *- Creation maillage GEOMETRIQUE * * *- Creation maillage HYBRIDE y compris sous-objets (cond. limites) * DOMA HYTOT 'IMPR' ; * * *- Coordonnées des points par classe de points * * * XCEN : Abscisse du sommet du cone * YCEN : Ordonnée du sommet du cone * RCEN : Rayon du cone * XCEN = 0.D0 ; YCEN =-0.5D0 ; RCEN = 3.0D0 * DX ; *================ * INITIALISATIONS *================ * * ------------------------ * = Conditions initiales = * ------------------------ * h(x,y) = f(r) * avec f(r) = max( h(1.-r/rcen) , 0.) * On se sert des égalités suivantes : * m = min(f,g) = (f+g - abs(f-g)) / 2 * M = max(f,g) = (f+g + abs(f-g)) / 2 * HAUT = 1.D0 ; * *- Charge aux sommets * CRS1 = (XS-XCEN)*(XS-XCEN) + ((YS-YCEN)*(YS-YCEN)) ** 0.5D0 ; CRS2 = 1.D0 - (CRS1 / RCEN) * HAUT ; CRS3 = 'ABS' CRS2 ; CRS4 = CRS2 + CRS3 / 2.D0 ; SI ( COMPLET ) ; SINON ; FINSI ; * *- Vitesses aux sommets * SPEEY = (-1.D0) * SPEEY ; mess ' Solution exacte projetée ' s2c ; DEBPROC TEST ; NBIT=enti (3.146 * DIAM / DT) + 1 ; coef = 1.e-20 ; 'OPTI' 'EF' 'SEMI' BETA OPKONV 'MATCONS' 'MTCV' 'ZONE' HYTOT 'OPER' 'KONV' 1. 'UN' COEF DT 'INCO' 'TN' 'CLIM' 'TN' 'TIMP' DRCOT 0. ; Si ( EGA OPDFDT 'BDF2'); RV = 'EQEX' RV 'OPTI' 'EF' 'CENTREE' BDF2 'ZONE' HYTOT 'OPER' 'DFDT' 1. 'TNM' 'TNMM' DT 'UN' coef 'INCO' 'TN' ; Sinon ; RV = 'EQEX' RV 'OPTI' 'EF' OPDFDT 'ZONE' HYTOT 'OPER' 'DFDT' 1. 'TNM' DT 'UN' coef 'INCO' 'TN' ; FINSI ; RV.'INCO' = TABLE 'INCO' ; SI ('EGA' graph 'O' ); trac u ptot1 'NCLK'; trac RV.'INCO'.'TNM' ptot1 'NCLK'; Finsi ; rv.'OMEGA'= 1. ; rv.'NITER'=1 ; exec rv ; TN=(RV.'INCO'.'TN') ; SI ('EGA' graph 'O' ); 'TITRE' TIT 'NCLK'; FINSI ; FINPROC RV ; * SCHEMA CRANK-NICHOLSON GENERALISE GALERKIN (CNG) BETA=1. ; OPDFDT='CENTREE' ; OPKONV='CNG' ; evolth=evolth et evolh ; evoltv=evoltv et evolv ; SI(NON COMPLET ) ; lrr=prog 0.0000 2.18498E-04 -1.30556E-03 -1.17804E-04 5.72424E-04 1.98609E-04 -3.67838E-03 2.49501E-02 0.35472 0.66388 0.95009 0.66041 0.32277 1.85347E-02 1.33351E-02 -1.43291E-02 5.74531E-03 -4.85268E-03 -5.00940E-03 3.95789E-03 0.0000; list lr ; mess ' Erreur sur CNG ' er ; si ( er > 1.e-4 ) ; erreur 5 ; finsi ; FINSI ; * SCHEMA Tenseur Visqueux (TVISQ) BETA=0. ; OPDFDT='CENTREE' ; OPKONV='TVISQUEU' ; evolth=evolth et evolh ; evoltv=evoltv et evolv ; SI(NON COMPLET ) ; lrr=prog 0.0000 8.25958E-08 -2.63735E-06 2.29954E-05 -1.63805E-04 1.10280E-03 -6.85438E-03 2.29617E-02 0.31028 0.66016 0.90422 0.70314 0.34157 4.19636E-02 -3.59161E-03 -5.01307E-06 7.59100E-04 -4.31731E-04 -9.34623E-05 2.18262E-05 0.0000; list lr ; mess ' Erreur sur Tenseur Visqueux ' er ; si ( er > 1.e-4 ) ; erreur 5 ; finsi ; FINSI ; * SCHEMA CRANK-NICHOLSON GALERKIN (CN) BETA=0.5 ; OPDFDT='CENTREE' ; OPKONV='CENTREE' ; evolth=evolth et evolh ; evoltv=evoltv et evolv ; SI ( NON COMPLET ) ; lrr=prog 0.0000 2.84874E-04 3.76178E-04 -4.74619E-04 -1.23049E-03 8.65360E-05 8.77272E-03 5.63920E-02 0.24097 0.60724 0.84842 0.79075 0.42250 7.93819E-02 -4.90737E-02 2.36598E-04 3.05821E-03 -2.56679E-03 -1.60211E-03 2.56096E-03 0.0000; list lr ; mess ' Erreur sur CN ' er ; si ( er > 1.e-4 ) ; erreur 5 ; finsi ; FINSI ; * SCHEMA CRANK-NICHOLSON PETROV-GALERKIN (CN-PG) BETA=0.5 ; OPDFDT='SUPG' ; OPKONV='SUPG' ; evolth=evolth et evolh ; evoltv=evoltv et evolv ; SI (NON COMPLET ) ; lrr=prog 0.0000 -4.15500E-08 3.71752E-07 -1.51473E-06 -2.69314E-05 5.77943E-04 7.95387E-03 5.65109E-02 0.24563 0.60380 0.84205 0.77323 0.40991 8.19064E-02 -4.45954E-02 -4.11115E-03 3.71337E-03 -2.85247E-04 -5.58008E-04 1.36503E-04 0.0000; list lr ; si ( er > 1.e-4 ) ; erreur 5 ; finsi ; FINSI ; * SCHEMA EULER IMPLICITE PETROV-GALERKIN (IMPL-PG) BETA=1. ; OPDFDT='SUPG' ; OPKONV='SUPG' ; evolth=evolth et evolh ; evoltv=evoltv et evolv ; SI ( NON COMPLET ) ; lrr=prog 0.0000 2.72088E-06 5.67138E-05 -5.55864E-04 2.90601E-03 2.81410E-02 8.90610E-02 0.19109 0.32444 0.44825 0.51077 0.47795 0.35589 0.20087 8.24119E-02 1.96227E-02 5.88033E-04 -4.15394E-05 -1.40971E-05 1.93301E-05 0.0000; list lr ; si ( er > 1.e-4 ) ; erreur 5 ; finsi ; FINSI ; * SCHEMA BDF2 BETA=0.5 ; OPDFDT='BDF2' ; OPKONV='SUPG' ; evolth=evolth et evolh ; evoltv=evoltv et evolv ; SI(NON COMPLET ) ; lrr=prog 0.0000 1.54805E-10 -3.66235E-09 5.89492E-08 -8.20960E-07 3.73495E-06 3.06438E-04 6.61244E-03 6.84728E-02 0.34155 0.84425 1.1003 0.84443 0.27789 -0.14289 -0.24111 -1.27424E-02 -6.61840E-03 5.55885E-03 1.59619E-03 0.0000; list lr ; mess ' Erreur sur BDF2 ' er ; si ( er > 1.e-4 ) ; erreur 5 ; finsi ; FINSI ; si ('EGA' graph 'O' ); titre 'Coupe ox à y=1/2 ' ; TAB1=TABLE; TAB1.'TITRE'=TABLE ; TAB1.1='TIRR MARQ CROI REGU'; TAB1.2='MARQ ETOI REGU'; TAB1.3='MARQ ETOI REGU'; TAB1.4='MARQ CROI REGU '; TAB1.5='MARQ LOSA REGU '; TAB1.6='MARQ CARR REGU '; DESS EVOLTH 'TITX' 'Ox' LEGE TAB1 ; titre 'Coupe oy à x=0 ' ; DESS EVOLTV 'TITX' 'Oy' LEGE TAB1 ; FINSI ; FIN ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales