* fichier : konv_gamma.dgibi
***********************************************************
***********************************************************
**** APPROCHE VF "Cell-Centred Formulation" pour la ****
**** solution des ****
**** Equations d Euler pour un gaz parfait ****
**** OPERATEURS PRIM, PRET, KONV ****
**** Computation of preconditioned jacobians ****
**** ****
**** Cas gaz monoespece, "calorically perfect" ****
**** ****
**** A. BECCANTINI DRN/DMT/SEMT/LTMF AOUT 2002 ****
***********************************************************
***********************************************************
'OPTION' 'DIME' 2 ;
'OPTION' 'ELEM' QUA4 ;
'OPTION' 'ECHO' 0 ;
'OPTION' 'TRAC' 'X' ;
*
*** GRAPH
*
GRAPH = FAUX ;
* GRAPH = VRAI ;
ERRTOL = 1.0D-3 ;
***************************
***** DOMAINE SPATIAL ****
***************************
A0 = 0.0D0 0.0D0;
A1 = 1.0D0 0.0D0;
A2 = 2.0D0 0.0D0;
A3 = 3.0D0 0.0D0;
A0A1 = A0 'DROIT' 1 A1;
A1A2 = A1 'DROIT' 1 A2;
A2A3 = A2 'DROIT' 1 A3;
DOM1 = 'TRANSLATION' A0A1 1 (0.0 1.0) ;
DOM2 = DOM1 'PLUS' (0.0 1.0) ;
DOM3 = DOM2 'PLUS' (0.0 1.0) ;
DOM4 = 'TRANSLATION' A1A2 1 (0.0 1.0) ;
DOM5 = DOM4 'PLUS' (0.0 1.0) ;
DOM6 = DOM5 'PLUS' (0.0 1.0) ;
DOM7 = 'TRANSLATION' A2A3 1 (0.0 1.0) ;
DOM8 = DOM7 'PLUS' (0.0 1.0) ;
DOM9 = DOM8 'PLUS' (0.0 1.0) ;
DOMTOT = DOM1 'ET' DOM2 'ET' DOM3 'ET' DOM4 'ET' DOM5 'ET'
DOM6 'ET' DOM7 'ET' DOM8 'ET' DOM9 'ELIMINATION' 0.0001 ;
$DOMTOT = 'MODE' DOMTOT 'EULER' ;
TDOMTOT = 'DOMA' $DOMTOT 'VF' ;
MDOMTOT = TDOMTOT . 'QUAF' ;
'ELIM' MDOMTOT 0.0001 ;
***************************************************
***** Densité, pression, vitesse, gamma ***********
***************************************************
RN0 = 'BRUI' 'BLAN' 'UNIF' 1.11 0.5 ('DOMA' $DOMTOT 'CENTRE') ;
PN0 = 'BRUI' 'BLAN' 'UNIF' 1.234 0.8 ('DOMA' $DOMTOT 'CENTRE') ;
GAMMAN = 'MANUEL' 'CHPO' ('DOMA' $DOMTOT 'CENTRE') 1 'SCAL' 1.4
'NATU' 'DISCRET' ;
CSONN = (GAMMAN '*' PN0) '/' RN0 ;
CSONN = 'KOPS' CSONN '**' 0.5 ;
UXN0 = 0.2 * CSONN ;
UYN0 = 0.3 * CSONN ;
GN0 = ('NOMC' (RN0 '*' UXN0) 'UX' 'NATU' 'DISCRET') 'ET'
('NOMC' (RN0 '*' UYN0) 'UY' 'NATU' 'DISCRET') ;
ECIN = 0.5D0 '*' RN0 '*' ((UXN0 '*' UXN0) '+' (UYN0 '*' UYN0)) ;
RETN0 = 'NOMC' 'SCAL' ((PN0 '/' (GAMMAN '-' 1.0)) '+' ECIN)
'NATU' 'DISCRET' ;
VIT PRES = PRIM 'PERFMONO' RN0 GN0 RETN0 GAMMAN ;
ERR1 = 'MAXIMUM' (PRES '-' PN0) 'ABS' ;
ERR2 = 'MAXIMUM' (GN0 '-' (RN0 '*' VIT ('MOTS' 'SCAL' 'SCAL')
('MOTS' 'UX' 'UY') ('MOTS' 'UX' 'UY'))) 'ABS' ;
'SI' (('MAXIMUM' ('PROG' ERR1 ERR2 ) 'ABS' ) > 1.0D-6) ;
'MESSAGE' 'Problem 0' ;
'ERREUR' 5 ;
'FINSI' ;
'SI' GRAPH;
'TRACER' (('DOMA' $DOMTOT 'MAILLAGE') 'ET'
('DOMA' $DOMTOT 'CENTRE'))
'TITRE' 'Domaine et centre' ;
'FINSI' ;
VN0 = 'COPIER' VIT ;
* Identity matrix
NOMDEN = 'RN ' ;
NOMMOX = 'RUXN' ;
NOMMOY = 'RUYN' ;
NOMRET = 'RETN' ;
NOMVX = 'RUXN' ;
NOMVY = 'RUYN' ;
NOMP = 'PN' ;
LISTCONS = 'MOTS' NOMDEN NOMMOX NOMMOY NOMRET ;
LISTPRIM = 'MOTS' NOMDEN NOMVX NOMVY NOMP ;
UN0 = ('NOMC' RN0 NOMDEN 'NATURE' 'DISCRET') 'ET'
('NOMC' ('MOTS' 'UX' 'UY') GN0 ('MOTS' NOMMOX NOMMOY)
'NATURE' 'DISCRET') 'ET'
('NOMC' RETN0 NOMRET 'NATURE' 'DISCRET') ;
MATIDE = 'KOPS' 'MATIDE' LISTCONS
('DOMA' $DOMTOT 'CENTRE') 'MATRIK' ;
ERRO = ('MAXIMUM' (UN0 '-' ('KOPS' 'MULT' MATIDE UN0)) 'ABS') ;
'SI' (ERRO > ERRTOL) ;
'MESSAGE' 'KONV' ;
'MESSAGE' 'Probleme a!!!' ;
'ERREUR' 5 ;
'FINSI' ;
*
**** Jacobian CONS/PRIM
*
CONSPRIM = 'PRIM' 'CONSPRIM' ('DOMA' $DOMTOT 'CENTRE')
LISTCONS LISTPRIM
RN0 VN0 PN0 GAMMAN ;
COEFF = 'BRUI' 'BLAN' 'UNIF' 1.0 0.00001 ('DOMA' $DOMTOT 'CENTRE') ;
RN = RN0 * COEFF ;
PN = PN0 * COEFF ;
VN = VN0 * COEFF ;
DPRIM = ('NOMC' (RN '-' RN0) NOMDEN) '+'
('NOMC' (VN '-' VN0) ('MOTS' 'UX' 'UY') ('MOTS' NOMVX NOMVY))
'+' ('NOMC' (PN '-' PN0) NOMP) ;
GN = RN * VN ;
RETN = (('INVERSE' (GAMMAN '-' 1.0)) '*' PN) '+' (0.5 '*' RN '*'
('PSCAL' VN VN ('MOTS' 'UX' 'UY') ('MOTS' 'UX' 'UY'))) ;
DCONV = ('NOMC' (RN '-' RN0) NOMDEN) '+'
('NOMC' (GN '-' GN0) ('MOTS' 'UX' 'UY') ('MOTS' NOMMOX NOMMOY))
'+' ('NOMC' (RETN '-' RETN0) NOMRET) ;
DCONV1 = 'KOPS' 'MULT' CONSPRIM DPRIM ;
'REPETER' BL1 ('DIME' LISTCONS) ;
NOMV = 'EXTRAIRE' LISTCONS &BL1 ;
CHPO1 = 'EXCO' DCONV1 NOMV ;
CHPO2 = 'EXCO' DCONV NOMV ;
ERRO = ('MAXIMUM' (CHPO1 '-' CHPO2) 'ABS') '/'
('MAXIMUM' CHPO1 'ABS') ;
'SI' (ERRO > 1.0D-5) ;
'MESSAGE' 'KONV' ;
'MESSAGE' 'Problem b' ;
'FINSI' ;
'FIN' BL1 ;
'FIN' ;
© Cast3M 2003 - All rights reserved.
Disclaimer