* fichier : pente2.dgibi ************************************************************************ ************************************************************************ *********************************************************** **** APPROCHE VF "Cell-Centred Formulation". **** **** OPÉRATEUR PENT, pour le calcul des gradients et **** **** de limiteurs **** **** Cas test: calcul du limiteur **** **** **** **** A. BECCANTINI, TTMF MAI 1998 **** *********************************************************** 'OPTION' 'ELEM' 'QUA4' ; 'OPTION' 'ISOV' 'SULI' ; 'OPTION' 'ECHO' 0; 'OPTION' 'TRAC' 'X'; GRAPH = FAUX ; * GRAPH = VRAI ; * **** Domaine * A1 = 0.0 0.0 ; A2 = 4.0 0.0 ; A3 = 4.0 2.0 ; A4 = 2.0 2.0 ; A5 = 0.0 2.0 ; A6 = 4.0 -2.0 ; A7 = 6.0 4.0 ; A8 = 2.0 4.0 ; A9 = -1.0 -1.0; DOM1 = 'MANUEL' 'QUA4' A1 A2 A3 A4 ; DOM2 = 'MANUEL' 'TRI3' A2 A7 A3 ; DOM3 = 'MANUEL' 'TRI3' A1 A6 A2 ; DOM4 = 'MANUEL' 'TRI3' A2 A6 A7 ; DOM5 = 'MANUEL' 'TRI3' A3 A7 A8 ; DOM6 = 'MANUEL' 'TRI3' A4 A3 A8 ; DOM7 = 'MANUEL' 'TRI3' A1 A4 A5 ; DOM8 = 'MANUEL' 'TRI3' A1 A9 A6 ; DOMTOT = DOM2 'ET' DOM3 'ET' DOM4 'ET' DOM1 'ET' DOM6 'ET' DOM7 'ET' DOM5 'ET' DOM8; 'SI' GRAPH ; 'TRACER' DOMTOT 'TITRE' 'DOMTOT' ; 'FINSI' ; DOMT1 = DOM1 'ET' DOM3 'ET' DOM2 'ET' DOM6 'ET' DOM7 'COULEUR' 'VERT'; DOMT2 = DOM2 'ET' DOM1 'ET' DOM4 'ET' DOM5 'COULEUR' 'VERT'; MDOMTOT = TDOMTOT . 'QUAF'; MDOM1 = TDOM1 . 'QUAF'; MDOM2 = TDOM2 . 'QUAF'; MDOM3 = TDOM3 . 'QUAF'; MDOM4 = TDOM4 . 'QUAF'; MDOM5 = TDOM5 . 'QUAF'; MDOM6 = TDOM6 . 'QUAF'; MDOM7 = TDOM7 . 'QUAF'; MDOM8 = TDOM8 . 'QUAF'; MDOMT1 = TDOMT1 . 'QUAF'; 'ET' MDOM6 'ET' MDOM7 'ET' MDOM8 'ET' MDOMT1) 1D-6; PHI = PHI1 'ET' PHI2 ; * PHI est une fonction lineaire des XX et YY. **************************************************** **** Le limiteur: les paramètres géométriques **** **************************************************** xC1 yC1 = 'COORDONNEE' PCDOM1 ; * **** 1-3 * xA1 yA1 = 'COORDONNEE' A1 ; xA2 yA2 = 'COORDONNEE' A2 ; xF3 = (xA1 '+' xA2) '/' 2.0 ; yF3 = (yA1 '+' yA1) '/' 2.0 ; xC3 yC3 = 'COORDONNEE' PCDOM3 ; xF3 yF3 = 'COORDONNEE' F3 ; DXC1F3 = xF3 '-' xC1 ; DYC1F3 = yF3 '-' yC1 ; DC1F3 = ((DXC1F3 '**' 2) '+' (DYC1F3 '**' 2)) '**' 0.5 ; DXC3F3 = xF3 '-' xC3 ; DYC3F3 = yF3 '-' yC3 ; DC3F3 = ((DXC3F3 '**' 2) '+' (DYC3F3 '**' 2)) '**' 0.5 ; DTOT3 = DC1F3 '+' DC3F3 ; * **** 1-2 * xA2 yA2 = 'COORDONNEE' A2 ; xA3 yA3 = 'COORDONNEE' A3 ; xF2 = (xA3 '+' xA2) '/' 2.0 ; yF2 = (yA3 '+' yA1) '/' 2.0 ; xC2 yC2 = 'COORDONNEE' PCDOM2 ; xF2 yF2 = 'COORDONNEE' F2 ; DXC1F2 = xF2 '-' xC1 ; DYC1F2 = yF2 '-' yC1 ; DC1F2 = ((DXC1F2 '**' 2) '+' (DYC1F2 '**' 2)) '**' 0.5 ; DXC2F2 = xF2 '-' xC2 ; DYC2F2 = yF2 '-' yC2 ; DC2F2 = ((DXC2F2 '**' 2) '+' (DYC2F2 '**' 2)) '**' 0.5 ; DTOT2 = DC1F2 '+' DC2F2 ; * **** 1-6 * xA4 yA4 = 'COORDONNEE' A4 ; xA3 yA3 = 'COORDONNEE' A3 ; xF6 = (xA3 '+' xA4) '/' 2.0 ; yF6 = (yA3 '+' yA4) '/' 2.0 ; xC6 yC6 = 'COORDONNEE' PCDOM6 ; xF6 yF6 = 'COORDONNEE' F6 ; DXC1F6 = xF6 '-' xC1 ; DYC1F6 = yF6 '-' yC1 ; DC1F6 = ((DXC1F6 '**' 2) '+' (DYC1F6 '**' 2)) '**' 0.5 ; DXC6F6 = xF6 '-' xC6 ; DYC6F6 = yF6 '-' yC6 ; DC6F6 = ((DXC6F6 '**' 2) '+' (DYC6F6 '**' 2)) '**' 0.5 ; DTOT6 = DC1F6 '+' DC6F6 ; * *** Limiteur 1-7 * xA4 yA4 = 'COORDONNEE' A4 ; xA1 yA1 = 'COORDONNEE' A1 ; xF7 = (xA1 '+' xA4) '/' 2.0 ; yF7 = (yA1 '+' yA4) '/' 2.0 ; xC7 yC7 = 'COORDONNEE' PCDOM7 ; xF7 yF7 = 'COORDONNEE' F7 ; DXC1F7 = xF7 '-' xC1 ; DYC1F7 = yF7 '-' yC1 ; DC1F7 = ((DXC1F7 '**' 2) '+' (DYC1F7 '**' 2)) '**' 0.5 ; DXC7F7 = xF7 '-' xC7 ; DYC7F7 = yF7 '-' yC7 ; DC7F7 = ((DXC7F7 '**' 2) '+' (DYC7F7 '**' 2)) '**' 0.5 ; DTOT7 = DC1F7 '+' DC7F7 ; * **** Composantes à controller * * **** Bloc sur les differents options * 'REPETER' BLOPT 2; 'SI' (&BLOPT 'EGA' 1) ; GRAPHI ALPHI COEF = 'PENT' $DOMTOT 'CENTRE' 'EULESCAL' 'LIMITEUR' 'FINSI' ; 'SI' (&BLOPT 'EGA' 2) ; GRAPHI ALPHI COEF = 'PENT' $DOMTOT 'CENTRE' 'EULEVECT' 'LIMITEUR' 'FINSI' ; 'SI' (GRAPH 'ET' (&BLOPT 'EGA' 1)) ; **************************************************** **** Le centre de l'element DOM3 est en dehors **** **** de son element dual : le programme GRADGEO **** **** prevoit ce cas d'un maillage mal fait et le**** **** resultat est juste. **** **************************************************** 'COUL' VERT; DOM3 'ET' DOM4 'ET' DOM8 'ET' DUAL) 'TITRE' 'CENTRE DEHORS DU DUAL'; 'FINSI' ; NOMCOM = 'EXTRAIRE' &BLOC1 LISTCOM ; NOMG1 = 'EXTRAIRE' &BLOC1 LISTNG1 ; NOMG2 = 'EXTRAIRE' &BLOC1 LISTNG2 ; NOMAL = 'EXTRAIRE' &BLOC1 LISTNAL ; PHI1 = 'EXTRAIRE' PHICOM 'SCAL' PCDOM1 ; PHIMAX = 'MAXIMUM' PHICOM; PHIMIN = 'MINIMUM' PHICOM; DPHISTE = PHIMAX '-' PHIMIN; GPHI1X = 'EXTRAIRE' GRAPHI NOMG1 PCDOM1 ; GPHI1Y = 'EXTRAIRE' GRAPHI NOMG2 PCDOM1 ; * **** 1-3 * DPHI0 = (GPHI1X '*' DXC1F3) '+' (GPHI1Y '*' DYC1F3) ; 'SI' (('ABS' DPHI0) '<EG' (1.D-6*DPHISTE)); AL13 = 1.0D0; 'SINON' ; 'SI' (DPHI0 > 0.0); DPHI = PHIMAX '-' PHI1; AL13 = (DPHI '/' DTOT3) * (DC1F3 '/' DPHI0) ; 'SINON' ; DPHI = PHIMIN '-' PHI1; AL13 = (DPHI '/' DTOT3) * (DC1F3 '/' DPHI0) ; 'FINSI' ; 'FINSI' ; * **** 1-2 * DPHI0 = (GPHI1X '*' DXC1F2) '+' (GPHI1Y '*' DYC1F2) ; 'SI' (('ABS' DPHI0) '<EG' (1.D-6*DPHISTE)); AL12 = 1.0D0; 'SINON' ; 'SI' (DPHI0 > 0.0); DPHI = PHIMAX '-' PHI1; AL12 = (DPHI '/' DTOT2) * (DC1F2 '/' DPHI0) ; 'SINON' ; DPHI = PHIMIN '-' PHI1; AL12 = (DPHI '/' DTOT2) * (DC1F2 '/' DPHI0) ; 'FINSI' ; 'FINSI' ; * **** 1-6 * DPHI0 = (GPHI1X '*' DXC1F6) '+' (GPHI1Y '*' DYC1F6) ; 'SI' (('ABS' DPHI0) '<EG' (1.D-6*DPHISTE)); AL16 = 1.0D0; 'SINON' ; 'SI' (DPHI0 > 0.0); DPHI = PHIMAX '-' PHI1; AL16 = (DPHI '/' DTOT6) * (DC1F6 '/' DPHI0) ; 'SINON' ; DPHI = PHIMIN '-' PHI1; AL16 = (DPHI '/' DTOT6) * (DC1F6 '/' DPHI0) ; 'FINSI' ; 'FINSI' ; * **** 1 - 7 * DPHI0 = (GPHI1X '*' DXC1F7) '+' (GPHI1Y '*' DYC1F7) ; 'SI' (('ABS' DPHI0) '<EG' (1.D-6*DPHISTE)); AL17 = 1.0D0; 'SINON' ; 'SI' (DPHI0 > 0.0); DPHI = PHIMAX '-' PHI1; AL17 = (DPHI '/' DTOT7) * (DC1F7 '/' DPHI0) ; 'SINON' ; DPHI = PHIMIN '-' PHI1; AL17 = (DPHI '/' DTOT7) * (DC1F7 '/' DPHI0) ; 'FINSI' ; 'FINSI' ; * *** ALPHA ELT * ALELT0 = 'EXTRAIRE' ALPHI NOMAL PCDOM1 ; 'SI' (('ABS' (ALELT '-' ALELT0)) > 1.0D-14); 'MESSAGE' (ALELT '-' ALELT0) ; 'OPTION' DONN 5 ; 'ERREUR' 5; 'FINSI' ; 'FIN' BLOC1 ; 'FIN' BLOPT ; 'FIN' ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales