* fichier : ns_ouvert.dgibi *** CAS-test permettant de vérifier la conservation des *** débits volumiques dans le cas d'un ouvert *** Date de création : Juillet 2007 (A. Bleyer) *** correction du bug dans normno.eso 'DEBP' EXECPDA PDA*'TABLE' NBIT*'ENTIER' ; 'SI' ('NON' ('EXIST' PDA 'TIC')) ; PDA.'TIC' = 'TABLE' 'INCO' ; PDA.'TIC'.'NUPAT' = 0 ; PDA.'TIC'.'NU' = 1.8E-5 ; 'FINSI' ; *** decentrement des inconnues KSUPG = 'SUPG' ; PDA.'KSUPG' = KSUPG ; *** discretisation de la pression KPRES = 'MSOMMET' ; 'SI' ('EXIST' PDA 'KPRES') ; KPRES = PDA.'KPRES' ; 'FINSI' ; PDA.'KPRES' = KPRES ; *** discretisation de la vitesse ou des champs transportés DISCR = 'LINE' ; 'SI' ('EXIST' PDA 'DISCR') ; DISCR = PDA.'DISCR' ; 'FINSI' ; PDA.'DISCR' = DISCR ; *** freqence de re-preconditionnement 'SI' ('NON' ('EXIST' PDA 'FRPREC')) ; PDA.'FRPREC' = 10 ; 'FINSI' ; *** fonction de paroi + conditions de glissement FPAROI = FAUX ; 'SI' ('EXIST' PDA 'FPAROI') ; FPAROI = PDA.'FPAROI' ; 'FINSI' ; PDA.'YP' = 1.E-2 ; *----------------------------------------------------------------------* * Remplissage de la table GEO * *----------------------------------------------------------------------* 'SI' ('NON' ('EXIST' PDA 'GEO')) ; GEO = 'TABLE' ; 'FINSI' ; GEO.'$VTF' = $VTF ; GEO.'$INLET' = $INLET ; GEO.'$OUTLET' = $OUTLET ; GEO.'M_VTF' = M_VTF ; GEO.'M_INLET' = M_INLET ; GEO.'M_OUTLET' = M_OUTLET ; GEO.'P0' = 0.0 0.0 ; IN2 = 'POINT' IN1 'INITIAL' ; IN3 = 'POINT' IN1 'FINAL' ; GEO.'IN_C' = IN2 'ET' IN3 ; IO2 = 'POINT' IO1 'INITIAL' ; IO3 = 'POINT' IO1 'FINAL' ; GEO.'OUT_C' = IO2 'ET' IO3 ; 'SINON' ; GEO.'P0' = 0.0 0.0 0.0 ; * entree * sortie 'FINSI' ; GEO.'M_PEAUI' = M_PEAUI ; GEO.'$PEAUI' = $PEAUI ; * CALCUL DES FACTEURS GEOMETRIQUES POUR L'ENTREE ET LA SORTIE 'SINON' ; 'FINSI' ; GEO.'IN_FG' = 'ABS' (GEO.'SINLET' '*' (src**(-1.0))) ; 'SINON' ; 'FINSI' ; GEO.'OUT_FG' = 'ABS' (GEO.'SOUTLET' '*' (src**(-1.0))) ; PDA.'GEO' = GEO ; 'FINSI' ; GEO = PDA.'GEO' ; $PEAUI = GEO.'$PEAUI' ; *----------------------------------------------------------------------* * Definition des équations * *----------------------------------------------------------------------* 'SI' ('NON' ('EXIST' PDA 'RV')) ; *---------> definition QDM <--------------------* * gravité dirigée suivant -z. 'OPTI' 'EF' 'IMPL' KSUPG KPRES 'NODIV' 'OPTI' 'EF' 'IMPL' KSUPG KPRES 'NODIV' RV = 'EQEX' RV 'OPTI' 'EFM1' 'IMPL' 'CENTREE' 'SI' FPAROI ; RV = 'EQEX' RV 'OPTI' 'EF' 'IMPL' KSUPG KPRES 'NODIV' 'SINON' ; RV = 'EQEX' RV 'CLIM' 'UN' 'UIMP' (GEO.'PEAUI') 0. 'UN' 'VIMP' (GEO.'PEAUI') 0. ; RV = 'EQEX' RV 'CLIM' 'UN' 'WIMP' (GEO.'PEAUI') 0. ; 'FINSI' ; 'FINSI' ; RV = 'EQEX' RV 'CLIM' 'UN' 'UIMP' (GEO.'INLET') 0. 'UN' 'VIMP' (GEO.'INLET') 0. ; RV = 'EQEX' RV 'CLIM' 'UN' 'WIMP' (GEO.'INLET') 0. ; 'FINSI' ; RV.'METHINV'.TYPINV=3 ; RV.'METHINV'.IMPINV=0 ; RV.'METHINV'.NITMAX=300; RV.'METHINV'.PRECOND=3 ; RV.'METHINV'.ILUTLFIL=4 ; RV.'METHINV'.ILUTDTOL=0.; RV.'METHINV'.RESID =1.e-10; RV.'METHINV'.'FCPRECT'=1 ; RV.'METHINV'.'FCPRECI'=1 ; RVP = 'EQEX' 'OPTI' 'EF' KPRES RVP = 'EQEX' RVP 'OPTI' 'EFM1' 'INCOD' KPRES 'ZONE' (GEO.'$VTF') 'SI' FPAROI ; RVP = 'EQEX' RVP 'OPTI' 'EF' 'IMPL' KPRES 'ZONE' $PEAUI 'FINSI' ; 'SI' ('EGA' KPRES 'MSOMMET') ; RVP = 'EQEX' RVP 'FINSI' ; * TYPINV : type ENTIER * 1 : résolution directe (Crout) * 2 : Gradient Conjugué * 3 : Bi-Gradient Conjugué Stabilisé (BiCGSTAB) * 4 : BiCGSTAB(2) (expérimental) * 5 : GMRES(m) : restarted Generalized Minimal Residual 'SI' ('EGA' DISCR 'MACRO') ; RVP.'METHINV'.TYPINV=3 ; 'SINON' ; RVP.'METHINV'.TYPINV=1 ; 'FINSI' ; RVP.'METHINV'.IMPINV=0 ; RVP.'METHINV'.NITMAX=300; * PRECOND : type ENTIER * 0 : pas de préconditionnement * 1 : préconditionnement par la diagonale * 2 : préconditionnement D-ILU * 3 : préconditionnement ILU(0) (Crout) * 4 : préconditionnement MILU(0) (Crout modifié) * 5 : préconditionnement ILUT (dual truncation) * 6 : préconditionnement ILUT2 (une variante du précédent) RVP.'METHINV'.PRECOND=3 ; RVP.'METHINV'.ILUTLFIL=10; RVP.'METHINV'.ILUTDTOL=0.; RVP.'METHINV'.RESID =1.e-10 ; RVP.'METHINV'.'FCPRECT'=50000 ; RVP.'METHINV'.'FCPRECI'=50000 ; RV.'INCO' = PDA.'TIC' ; PDA.'RV' = RV ; ** fin de la definition des equations 'FINSI' ; * 'MESS' 'Discrétisation vitesse|pression ' DISCR ' | ' KPRES ; 'MESS' 'Décentrement utilisé : ' KSUPG ; * PDA.'TIC'.'DT' = PDA.'DT0' ; RV = PDA.'RV' ; ** boucle temporelle 'REPETER' BCLTPS NBIT ; 'SI' (NBIT 'EGA' 0) ; 'QUITTER' BCLTPS ; 'FINSI' ; TPS0 = TPS0 + (PDA.'DT0') ; PDA.'TIC'.'NUPAT' = (PDA.'TIC'.'NUPAT') '+' 1 ; Uinj = Qint / PDA.'GEO'.'SINLET' ; * chercher Uinj en fonction de Qinj 'SI' ('NON' FPAROI) ; 'FINSI' ; RV.'CLIM' = (RV.'CLIM' '-' RV.'CLIM') '+' gj ; 'SI' ('NON' ('EXIST' PDA.'TIC' 'UN')) ; 'FINSI' ; 'NATU' 'DISCRET' ; PDA.'TIC'.'UNM' = 'COPIER' PDA.'TIC'.'UN' ; 'SCAL' (PDA.'KPRES') 0.0; PDA.'TIC'.'YP' = PDA.'YP' ; 'FINSI' ; UN = PDA.'TIC'.'UN' ; LM =PDA.'PARAM_TURB' ; NUT = (LM*LM*(P**0.5)) ; *Réalisabilité sur Nut NU = PDA.'NU' ; a = 5000.* NU ; al =0.8 ; ala=al*a ; b=ala*((2.*(1.-al))**(-1.)) ; Nutsnu=NUT / NU ; (NU + NUT) ; *---> re-preconditionnement des systemes toutes les 10 iterations RV.'calprec' = VRAI ; 'FINSI' ; EXEC RV ; 'FIN' BCLTPS ; 'FINP' ; Rinj = 0.1 ; Linj = 0.2 ; Rpip = 0.3 ; Lpip = 0.5 ; Hpip = 4.0 ; Rcuv = 2.0 ; Hcuv = 8.0 ; OO = 0.0 0.0 0.0 ; OX = 1.0 0.0 0.0 ; OY = 0.0 1.0 0.0 ; OZ = 0.0 0.0 1.0 ; PX0 = 0.0 0.0 0.0 ; PX1 = Rinj 0.0 0.0 ; PX2 = Rcuv 0.0 0.0 ; DX1 = 'DROIT' PX0 PX1 1 ; DX2 = 'DROIT' PX1 PX2 5 ; DZ0 = DX1 'MOINS' (Linj * OZ) ; DZ1 = DX1 ET DX2 ; SZ5 = 'DROIT' (Rcuv 0.0 (Hpip - Rpip)) (Rcuv 0.0 (Hpip + Rpip)) 4 ; SZT = SZ1 ET SZ2 ET SZ3 ET SZ4 ET SZ5 ; SY0 = SZ1 ET SZ2 ET SZ3 ET SZ4 ET SZ5 ET SS1 ET SS2 ET SS3 ET SS4 ; VVT = VY1 ET VY2 ET VY3 ET VV1 ET VV2 ET VV3 ; *'TRACE' 'CACH' (VVT ET S_INLET ET S_OUTLET) ; *** ------------------------- *** *** remplissage de la table *** *** ------------------------- *** PDA = 'TABLE' ; PDA.'FPAROI' = VRAI ; PDA.'DISCR'='QUAF' ; PDA.'KPRES'='CENTREP1' ; PDA.'GRAPH'=VRAI ; *--> Definition de l'injection PDA.'scenario' = 'TABLE' ; *--> Viscosité du mélange PDA.'NU' = 1.8e-5 ; * utilisé dans le cas glissement + fonctions de paroi *YP=1.E-2; * definition d'un modele de turbulence PDA.'PARAM_TURB' = (Rinj / 2.0) ; *--> definition des objets geometriques * maillage total fluide PDA.'VTF' = VVT ; * maillage de l'entrée PDA.'INLET' = S_INLET ; * direction de l'injection à l'entrée PDA.'Dir_in' = OZ ; * maillage de la sortie PDA.'OUTLET' = S_OUTLET ; * direction d'ejection de gaz à la sortie PDA.'Dir_out' = OX ; PDA.'DT0' = 0.05 ; EXECPDA PDA 1 ; 'SI' FAUX ; TRACE UX1 PL1 ; TRACE UY1 PL1 ; TRACE UZ1 PL1 ; UN = PDA.'TIC'.'UN' ; TRACE VN PL1 ; TRACE NUN PL1 ; 'FINSI' ; UN = PDA.'TIC'.'UN' ; INLET = PDA.'GEO'.'INLET' ; $INLET = PDA.'GEO'.'$INLET' ; OUTLET = PDA.'GEO'.'OUTLET' ; $OUTLET = PDA.'GEO'.'$OUTLET' ; QStot = Qin + Qout ; ERROR = 0 ; 'SI' (('ABS' QStot) > 1.E-10) ; ERROR = ERROR + 1 ; 'FINSI' ; 'SI' (ERROR > 0) ; 'MESS' 'Problème de conservation du débit volumique sur l ' ; 'MESS' 'enveloppe fluide !!' ; 'ERREUR' 5 ; 'SINON' ; 'MESS' 'Tout s est bien passé ' ; 'FINSI' ; 'FIN' ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales