* fichier : konv_fmm_test2.dgibi
***********************************************************************
* *
* 'KONV' OPERATOR *
* FREE MATRIX METHOD implicitation. *
* *
* VF "cell-centered" discretization of the Euler equations. *
* Unknowns : U (density, momentum, total energy per volume unity *
* (conservative variables)) *
* In the i-th cell we have to compute *
* *
* (U_i^{n+1} - U_i^{n}) * AN_i(U^{n}) = *
* RES_i(U^{n}) + BN_i(U^{n}) - BN_i(U_i^{n+1}) *
* *
* In this test case we compute AN et BN in a particular 1D case. *
* *
* A. Beccantini *
* SFME/LTMF *
* 03/05/01 *
***********************************************************************
*
******************
**** MAILLAGE ****
******************
TYEL = 'QUA4' ;
'OPTION' 'DIME' 2 'ELEM' TYEL 'ISOV' 'SULI'
'ECHO' 1 'TRAC' 'X' ;
GRAPH = VRAI ;
GRAPH = FAUX ;
*
*
*
RAF = 1 ;
NX = 1 ;
NY = 1 ;
DX = 0.5 ;
A0 = 0. 0. ;
A1 = 0.5 0. ;
A2 = 0.5 0.5 ;
A3 = 0. 0.5 ;
*
**** LIGB
*
LIGB= A0 'DROIT' NX A1 ;
*
**** LIGH
*
LIGH = A3 'DROIT' NX A2 ;
*
**** DOMINT
*
DOMINT = LIGH 'REGLER' NY LIGB ;
LIGCON = 'CONTOUR' DOMINT ;
*
*** LIGG
*
LIGG = LIGCON 'ELEM' 'COMP' A0 A3 ;
*
**** LIGD
*
LIGD = LIGCON 'ELEM' 'COMP' A2 A1 ;
FROD = LIGD 'TRANSLATION' 1 (DX 0.0) ;
FROG = LIGG 'TRANSLATION' 1 ((-1.0 '*' DX) 0.0) ;
* DOMTOT = total region
DOMTOT = DOMINT 'ET' FROD 'ET' FROG ;
'ELIMINATION' (1.0D-3 '/' RAF) DOMTOT ;
*
**** Creation of DOMAINE tables via the MODEL object
*
$DOMTOT = 'MODELISER' DOMTOT 'EULER' ;
$DOMINT = 'MODELISER' DOMINT 'EULER' ;
$FROD = 'MODELISER' FROD 'EULER' ;
$FROG = 'MODELISER' FROG 'EULER' ;
$LIGG = 'MODELISER' LIGG 'EULER' ;
$LIGD = 'MODELISER' LIGD 'EULER' ;
TDOMTOT = 'DOMA' $DOMTOT 'VF' ;
TDOMINT = 'DOMA' $DOMINT 'VF' ;
TFROD = 'DOMA' $FROD 'VF' ;
TFROG = 'DOMA' $FROG 'VF' ;
TLIGG = 'DOMA' $LIGG 'VF' ;
TLIGD = 'DOMA' $LIGD 'VF' ;
QDOMTOT = TDOMTOT . 'QUAF' ;
QDOMINT = TDOMINT . 'QUAF' ;
QFROD = TFROD . 'QUAF' ;
QFROG = TFROG . 'QUAF' ;
QLIGG = TLIGG . 'QUAF' ;
QLIGD = TLIGD . 'QUAF' ;
'ELIMINATION' QDOMTOT (1.0D-3 '/' RAF) QDOMINT ;
'ELIMINATION' QDOMTOT (1.0D-3 '/' RAF) QFROD ;
'ELIMINATION' QDOMTOT (1.0D-3 '/' RAF) QFROG ;
'ELIMINATION' QDOMTOT (1.0D-3 '/' RAF) QLIGD ;
'ELIMINATION' QDOMTOT (1.0D-3 '/' RAF) QLIGG ;
*
**** SEG2 mesh for BC
*
ELP1 = 'MANUEL' 'POI1' ('POIN' 1 ('DOMA' $LIGD 'CENTRE')) ;
ELTINT = ('DOMA' $DOMINT 'FACEL') 'ELEM' 'APPUYE' 'LARGEMENT'
ELP1 ;
ELTFRO = 'ELEM' ('DOMA' $FROD 'FACEL') 'APPUYE' 'LARGEMENT'
ELP1 ;
P1 = 'POIN' 1 ELTINT ;
P2 = 'POIN' 1 ELTFRO ;
COND = 'MANUEL' 'SEG2' P1 P2 ;
NBL1 = ('NBNO' ('DOMA' $LIGD 'CENTRE')) '-' 1 ;
'SI' (NBL1 > 0) ;
'REPETER' BL1 NBL1 ;
ELP1 = 'MANUEL' 'POI1' ('POIN' (&BL1 '+' 1)
('DOMA' $LIGD 'CENTRE')) ;
ELTINT = ('DOMA' $DOMINT 'FACEL') 'ELEM' 'APPUYE' 'LARGEMENT'
ELP1 ;
ELTFRO = 'ELEM' ('DOMA' $FROD 'FACEL') 'APPUYE' 'LARGEMENT'
ELP1 ;
P1 = 'POIN' 1 ELTINT ;
P2 = 'POIN' 1 ELTFRO ;
COND = COND 'ET' ('MANUEL' 'SEG2' P1 P2) ;
'FIN' BL1 ;
'FINSI' ;
COND = COND 'COULEUR' 'ROUG' ;
ELP1 = 'MANUEL' 'POI1' ('POIN' 1 ('DOMA' $LIGG 'CENTRE')) ;
ELTINT = ('DOMA' $DOMINT 'FACEL') 'ELEM' 'APPUYE' 'LARGEMENT'
ELP1 ;
ELTFRO = 'ELEM' ('DOMA' $FROG 'FACEL') 'APPUYE' 'LARGEMENT'
ELP1 ;
P1 = 'POIN' 1 ELTINT ;
P2 = 'POIN' 1 ELTFRO ;
CONG = 'MANUEL' 'SEG2' P1 P2 ;
'SI' (NBL1 > 0) ;
NBL1 = ('NBNO' ('DOMA' $LIGG 'CENTRE')) '-' 1 ;
'REPETER' BL1 NBL1 ;
ELP1 = 'MANUEL' 'POI1' ('POIN' (&BL1 '+' 1)
('DOMA' $LIGG 'CENTRE')) ;
ELTINT = ('DOMA' $DOMINT 'FACEL') 'ELEM' 'APPUYE' 'LARGEMENT'
ELP1 ;
ELTFRO = 'ELEM' ('DOMA' $FROG 'FACEL') 'APPUYE' 'LARGEMENT'
ELP1 ;
P1 = 'POIN' 1 ELTINT ;
P2 = 'POIN' 1 ELTFRO ;
CONG = CONG 'ET' ('MANUEL' 'SEG2' P1 P2) ;
'FIN' BL1 ;
'FINSI' ;
CONG = CONG 'COULEUR' 'ROUG' ;
'SI' GRAPH ;
'TRACER' (DOMTOT 'ET' COND 'ET' CONG) 'TITRE'
'Domaine total' ;
'FINSI' ;
*****************************************************
*****************************************************
******* Initial conditions **************************
*****************************************************
*****************************************************
*
***************************************************************
***** PROCEDURE POUR CALCULER LES VARIABLES CONSERVATIVES *****
***************************************************************
'DEBPROC' CONS ;
'ARGUMENT' RN*'CHPOINT' VN*'CHPOINT' PN*'CHPOINT' GAMN*'CHPOINT' ;
RVN = RN '*' VN ('MOTS' 'SCAL' 'SCAL') ('MOTS' 'UX' 'UY')
('MOTS' 'UX' 'UY') ;
CELL = 'PSCAL' RVN VN ('MOTS' 'UX' 'UY') ('MOTS' 'UX' 'UY') ;
RECIN = 0.5 '*' CELL ;
REIN = PN '/' (GAMN '-' 1.0) ;
RETN = RECIN '+' REIN ;
DETR CELL ;
DETR RECIN ;
DETR REIN ;
'RESPRO' RVN RETN ;
'FINPROC' ;
***************************************************************
***************************************************************
***************************************************************
GAMAIR = 1.4 ;
RN0 = ('MANU' 'CHPO' ('DOMA' $DOMTOT 'CENTRE') 1 'SCAL' 1.4
'NATURE' 'DISCRET') ;
VN0 = ('MANU' 'CHPO' ('DOMA' $DOMTOT 'CENTRE') 2 'UX' 0.5
'UY' 0.0 'NATURE' 'DISCRET') ;
PN0 = ('MANU' 'CHPO' ('DOMA' $DOMTOT 'CENTRE') 1 'SCAL' 4.0
'NATURE' 'DISCRET') ;
GAMN = 'MANU' 'CHPO' ('DOMA' $DOMTOT 'CENTRE') 1 'SCAL' GAMAIR
'NATURE' 'DISCRET' ;
GN0 RETN0 = CONS RN0 VN0 PN0 GAMN ;
VN1 PN1 = 'PRIM' 'PERFMONO' RN0 GN0 RETN0 GAMN ;
ERRO = 'MAXIMUM' (PN1 '-' PN0) 'ABS' ;
'SI' (ERRO > 1.0D-6) ;
'MESSAGE' 'Problem in the ic file!!!'
'ERREUR' 5 ;
'FINSI' ;
*
**** Plot of IC
*
MOD1 = 'MODELISER' ('DOMA' $DOMTOT 'MAILLAGE' ) 'THERMIQUE';
'SI' GRAPH ;
CHM_RN = 'KCHA' $DOMTOT 'CHAM' RN0 ;
CHM_PN = 'KCHA' $DOMTOT 'CHAM' PN0 ;
CHM_VN = 'KCHA' $DOMTOT 'CHAM' VN0 ;
'TRACER' CHM_RN MOD1
'TITR' ('CHAINE' 'RN at t=' 0.0);
'TRACER' CHM_PN MOD1
'TITR' ('CHAINE' 'PN at t=' 0.0);
'TRACER' CHM_VN MOD1
'TITR' ('CHAINE' 'VN at t=' 0.0);
'FINSI' ;
MOTRN = 'RN' ;
MOTRNX = 'RUX' ;
MOTRNY = 'RUY' ;
MOTRETN = 'RETN' ;
LISTINCO = 'MOTS' MOTRN MOTRNX MOTRNY MOTRETN ;
*********************************************************************
********************** TEST *****************************************
*********************************************************************
ZERO = 1.0D-8 ;
SAFFAC = 10. ;
PINT = 'POIN' 1 ('DOMA' $DOMINT 'CENTRE') ;
cson = 2. ;
sigmaf = cson '+' 0.5 ;
rsurf = 0.5 ;
rvolu = 0.25 ;
rdia = 0.5 ;
deltat = saffac '*' 0.5 '*' (rdia '/' sigmaf) ;
ani = ((1. '/' deltat) '+' ((rsurf '/' rvolu) '*' sigmaf)) ;
ani = ani '+' ((rsurf '/' rvolu) '*' cson) ;
*
ANINT = 'MANUEL' 'CHPO' ('DOMA' $DOMINT 'CENTRE') 1 'SCAL' ani ;
ROF VITF PF GAMF = 'PRET' 'PERFMONO' 1 1
$DOMTOT RN0 VN0 PN0 GAMN ;
ANI1 = 'KONV' 'VF' 'PMONOFMM' 'AN' LISTINCO
$DOMTOT RN0 GN0 RETN0 GAMN SAFFAC ;
ERRO = 'MAXIMUM' ('REDU' ('ABS' (ANINT '-' ANI1))
('DOMA' $DOMINT 'CENTRE')) ;
'SI' (ERRO > ZERO) ;
'MESSAGE' 'Probleme en KONV' ;
'ERREUR' 5 ;
'FINSI' ;
BNI1 = 'KONV' 'VF' 'PMONOFMM' 'BN' LISTINCO
$DOMTOT RN0 GN0 RETN0 GAMN ;
ro = 'EXTRAIRE' RN0 'SCAL' PINT ;
roux = 'EXTRAIRE' GN0 'UX' PINT ;
rouy = 'EXTRAIRE' GN0 'UY' PINT ;
retn = 'EXTRAIRE' RETN0 'SCAL' PINT ;
bcel = -1 '*' (sigmaf * rsurf '/' rvolu) ;
bcel = bcel '-' (cson * rsurf '/' rvolu) ;
bn1 = bcel * ro ;
bn2 = bcel * roux ;
bn3 = bcel * rouy ;
bn4 = bcel * retn ;
bna1 = 'EXTRAIRE' BNI1 'RN' PINT ;
bna2 = 'EXTRAIRE' BNI1 'RUX' PINT ;
bna3 = 'EXTRAIRE' BNI1 'RUY' PINT ;
bna4 = 'EXTRAIRE' BNI1 'RETN' PINT ;
ERRO = 'MAXIMUM' ('ABS' ('PROG' (bn1 '-' bna1) (bn2 '-' bna2)
(bn3 '-' bna3) (bn4 '-' bna4))) ;
'SI' (ERRO > ZERO) ;
'MESSAGE' 'Probleme en KONV' ;
'ERREUR' 5 ;
'FINSI' ;
'FIN' ;
© Cast3M 2003 - All rights reserved.
Disclaimer