Download pente3.dgibi

Back to the list

* fichier :  pente3.dgibi
***********************************************************
**** APPROCHE VF "Cell-Centred Formulation".           ****
**** OPÉRATEUR PENT, pour le calcul des gradients et   ****
**** des limiteurs                                     ****
**** Cas test: calcul du gradient avec conditions de   ****
****           typr mur                                ****
****                                                   ****
**** A. BECCANTINI, TTMF    JUILLET 2003               ****
***********************************************************

'OPTION'  'ECHO' 1 'DIME' 2 'ELEM' 'TRI3' 'TRAC' 'X' ;

 GRAPH = VRAI ;
 GRAPH = FAUX ;
 
 P1 = 0.0 0.0 ;
 P2 = 1.0 0.0 ;
 P3 = 1.0 1.0 ;

 P1P2 = P1 'DROIT' 5 P2 ;
 P2P3 = P2 'DROIT' 7 P3 ;
 P3P1 = P3 'DROIT' 9 P1 ;
 
 DOMINT = 'SURFACE' (P1P2 'ET' P2P3 'ET' P3P1) ;
 $DOMINT = 'MODE' DOMINT 'EULER'  ;
 TDOMINT = 'DOMA' $DOMINT 'VF' ;
 MDOMINT = TDOMINT . 'QUAF' ;
* 
 DOMSYM = DOMINT 'SYMETRIE' 'DROI' P1 P3 ;
 'ELIMINATION' DOMINT DOMSYM 0.0001 ;
 $DOMSYM = 'MODE' DOMSYM 'EULER'  ;
 TDOMSYM = 'DOMA' $DOMSYM 'VF' ;
 MDOMSYM = TDOMSYM . 'QUAF' ;
*
 DOMTOT = DOMSYM 'ET' DOMINT ;
 $DOMTOT = 'MODE' DOMTOT 'EULER'  ;
 TDOMTOT = 'DOMA' $DOMTOT 'VF' ;
 MDOMTOT = TDOMTOT . 'QUAF' ;
*
 'ELIMINATION' MDOMTOT MDOMSYM 0.0001 ;
 'ELIMINATION' MDOMTOT MDOMINT 0.0001 ;
*
*** Calcul du gradient
*
* Gradient sur DOMTOT reduit sur DOMINT =
* gradient sur DOMSYM
*
 XX YY = 'COORDONNEE' ('DOMA' $DOMINT 'CENTRE') ; 
 CHP1 = (3.0 '*' XX '*' XX) '+' (2.11 '*' YY '*' YY) ;
 CHP1 = 'NOMC' 'UX' CHP1 'NATU' 'DISCRET' ;
 CHP2 = (4.0 '*' XX) '+' (7.0 '*' YY) ;
 CHP2 = 'NOMC' 'UY' CHP2 'NATU' 'DISCRET' ;
 CHP = CHP1 'ET' CHP2 ;
*
**** Eulescal
*
 GRCHP0 ALCHP0 COEF = 'PENT' $DOMINT 'CENTRE' 'EULESCAL' 
                    'LIMITEUR' ('MOTS' 'UX' 'UY') CHP;
* AB: 'SYMETRIE' ne marche pas pour un CHAMPOIN
*
 AA = 'EXTRAIRE' GRCHP0 MAIL ;
 NN = 'NBNO' AA ;
 CHPSYM CACCA = 'KOPS' 'MATRIK' ;
 'REPETER' BL1 NN ;
     BB = 'POIN' &BL1 AA ;
     CC = 'MANUEL' 'POI1' BB ;
     DD = CC 'SYMETRIE' 'DROI' P1 P3 ;
     VAL1 = 'EXTRAIRE' CHP 'UX' BB ;
     VAL2 = 'EXTRAIRE' CHP 'UY' BB ;
     CHPSYM = CHPSYM '+' ('MANUEL' 'CHPO' DD 2 'UX' VAL1
                        'UY' VAL2) ;
 'FIN' BL1 ;
*
 AA = 'EXTRAIRE' CHPSYM 'MAIL' ;
 'ELIMINATION' AA (TDOMTOT . 'CENTRE') 0.0001 ;
 CHPTOT = CHP '+' CHPSYM ;
*
 GRCHPT ALCHPT COEFT = 'PENT' $DOMTOT 'CENTRE' 'EULESCAL' 
                    'LIMITEUR' ('MOTS' 'UX' 'UY') CHPTOT ;
 GRCHP1 = 'REDU' GRCHPT (TDOMINT . 'CENTRE') ;
 ERRO = (GRCHP1 '-' GRCHP0) 'ABS' ;
 'SI' GRAPH ;
     MODT  =  'MODELISER' ('DOMA' $DOMTOT 'MAILLAGE') 'THERMIQUE' ;
     CHM_CHP  =  'KCHA' $DOMTOT 'CHAM' CHPTOT ;
     'TRACER'  CHM_CHP  MODT 'TITR'  ('CHAINE'  'EULESCAL: champ');
     MOD1  =  'MODELISER' ('DOMA' $DOMINT 'MAILLAGE') 'THERMIQUE' ;
     CHM_MER  =  'KCHA' $DOMINT 'CHAM' ERRO ;
     'TRACER'  CHM_MER  MOD1 'TITR'  ('CHAINE'  'EULESCAL: erreur');
 'FINSI'  ;
 'SI' (('MAXIMUM' ERRO 'ABS') > 1.0D-8) ;
    'ERREUR' 5 ;
 'FINSI' ;

*
*
**** Eulevect (NB. angle = 45) 
*
 GRCHP0 ALCHP0 COEF = 'PENT' $DOMINT 'CENTRE' 'EULEVECT' 
                    'LIMITEUR' ('MOTS' 'UX' 'UY') CHP;
* AB: 'SYMETRIE' ne marche pas pour un CHAMPOIN
*
 AA = 'EXTRAIRE' GRCHP0 MAIL ;
 NN = 'NBNO' AA ;
 CHPSYM CACCA = 'KOPS' 'MATRIK' ;
 'REPETER' BL1 NN ;
     BB = 'POIN' &BL1 AA ;
     CC = 'MANUEL' 'POI1' BB ;
     DD = CC 'SYMETRIE' 'DROI' P1 P3 ;
     VAL1 = 'EXTRAIRE' CHP 'UX' BB ;
     VAL2 = 'EXTRAIRE' CHP 'UY' BB ;
     VALT = (VAL1 '+' VAL2) '/' (2.0 '**' 0.5) ;
     VALN = -1 '*' ((VAL1 '-' VAL2) '/' (2.0 '**' 0.5)) ;
     VALX = (VALN '+' VALT) '/' (2.0 '**' 0.5) ;
     VALY = (VALT '-' VALN) '/' (2.0 '**' 0.5) ;
     CHPSYM = CHPSYM '+' ('MANUEL' 'CHPO' DD 2 'UX' VALX
                        'UY' VALY) ;
 'FIN' BL1 ;
*
 AA = 'EXTRAIRE' CHPSYM 'MAIL' ;
 'ELIMINATION' AA (TDOMTOT . 'CENTRE') 0.0001 ;
 CHPTOT = CHP '+' CHPSYM ;
*
 GRCHPT ALCHPT COEFT = 'PENT' $DOMTOT 'CENTRE' 'EULEVECT' 
                    'LIMITEUR' ('MOTS' 'UX' 'UY') CHPTOT ;
 GRCHP1 = 'REDU' GRCHPT (TDOMINT . 'CENTRE') ;
 ERRO = (GRCHP1 '-' GRCHP0) 'ABS' ;
 'SI' GRAPH ;
     MODT  =  'MODELISER' ('DOMA' $DOMTOT 'MAILLAGE') 'THERMIQUE' ;
     CHM_CHP  =  'KCHA' $DOMTOT 'CHAM' CHPTOT ;
     'TRACER'  CHM_CHP  MODT 'TITR'  ('CHAINE'  'EULESCAL: champ');
     MOD1  =  'MODELISER' ('DOMA' $DOMINT 'MAILLAGE') 'THERMIQUE' ;
     CHM_MER  =  'KCHA' $DOMINT 'CHAM' ERRO ;
     'TRACER'  CHM_MER  MOD1 'TITR'  ('CHAINE'  'EULESCAL: erreur');
 'FINSI'  ;
 'SI' (('MAXIMUM' ERRO 'ABS') > 1.0D-8) ;
    'ERREUR' 5 ;
 'FINSI' ;
 'FIN' ;
*
 

© Cast3M 2003 - All rights reserved.
Disclaimer