* fichier : bc30.dgibi ************************************************************************ ************************************************************************ *$$$ BC30 *X BC30 (Jeux de donnees) ** ** BC30 ** ** CANAL CHAUFFE INCLINE ANGL = 30. LONGUEUR H0=10 LARGEUR 1. ** K-E PLAN --- RE=2.E+5 ** ** teste NSKE(SUPG) TSCAL(PSI) LAPN FPU ECHI et VNIMP ** Formulation EFM1 algorithme semi implicite ** teste aussi les méthodes d'inversion de la pression : ** Choleski et gradient conjugué. ** ** ** --- 26 JANVIER 1987 --- modifie --- 26 MAI 1993 --- ** modifie --- 17 DECEMBRE 1997 --- ** ** A noter : ** ** 1/ la manière dont sont donnés les différents coefficients ** du fait que df/dt a comme coefficient 1. pour toutes les ** équations. ** 2/ La manière dont est réalisé le couplage : construction ** du maillage de raccord (uniquement valable en 2D) ** et procédure CALCUL . ** 3/ Le bilan thermique dans ce cas est assez mal vérifié . ** Les causes : maillage grossier, flux thermique tres faible ** par rapport au debit enthalpique, terme d'accumulation ** d teta / dt non pris en compte dans le bilan. ** ** GRAPH = 'N' ; COMPLET = FAUX ; NITMA=200; SI (NON COMPLET) ; err1=5.E-4; NITMA = 40 ; FINSI ; p1=0 0 ; p2=1. 0.; nbpe=7 ; nbpp=10 ; *nbpe=40 ; nbpp=80 ; *nbpe=50 ; nbpp=150 ; tole=1.e-5 ; H0=10.; entree= p1 d nbpe p2 ; *entree= p1 d dini 0.05 dfin 0.2 p2 ; c1= 5. 0. ; pp1=p1 c c1 q1 nbpp ; pp2=p2 c c1 q2 nbpp ; pp1=p1 d q1 nbpp ; eps=0.1 ; pp2=p2 d q2 nbpp ; *bell=surf cont ; bell=daller entree pp2 sortie pp1 ; paroi=pri trans 4 (-0.1 0) ; MT=bell et paroi ; et Mpri et Mpp1 et Mpp2) tole ; ************************* PROCEDURE CALCUL ***************** DEBP CALCUL ; tn=rv.'INCO'.'TN' ; un=rv.'INCO'.'UN' ; finproc as2 ama1 ; ************************* PROCEDURE CALCUL ***************** *option donn 5 ; NU =7.3E-7 ; LAMBDAP=15.2 ; ROCPP=3.7E6 ; ALFP=LAMBDAP/ROCPP ; *ALFP=4.06E-6 ; LAMBDAE=0.62 ; ROCPE=4.15E6 ; ALFE=LAMBDAE/ROCPE ; *ALFE=1.5E-7 ; YP =5.E-2 ; R0 =0.5 ; TPSC =1500.; TREF=0. ; gb = 0. 0. ; H=1.E4 ; HF=H/ROCPE ; HP=H/ROCPP ; HP=H/ROCPE ; CMU = 0.09 ; UREF = 4. ; KE = (0.05 * UREF)*(0.05 * UREF) ; EE = (KE**1.5) / R0 ; nut = 0.09 * KE * KE / EE ; mess ' NUT entree ' nut ; 'ZONE' $MT 'OPER' 'CALCUL' 'ZONE' $BELL 'OPER' 'NSKE' NU NUT 'INCO' 'UN' 'KN' 'EN' 'ZONE' $PP1 'OPER' 'FPU' NU UET1 YP 'INCO' 'UN' 'KN' 'EN' 'ZONE' $PP2 'OPER' 'FPU' NU UET2 YP 'INCO' 'UN' 'KN' 'EN' ; 'ZONE' $PAROI 'OPER' 'LAPN' ALFP 'INCO' 'TN' 'ZONE' $PRIC 'OPER' 'ECHI' HP 'TF' 'INCO' 'TN' 'ZONE' $PP1C 'OPER' 'ECHI' HF 'TP' 'INCO' 'TN' ; 'ZONE' $BELL 'OPER' 'DFDT' 1. 'UN' 'DELTAT' 'INCO' 'UN' 'ZONE' $MT 'OPER' 'DFDT' 1. 'TN' 'DELTAT' 'INCO' 'TN' 'ZONE' $BELL 'OPER' 'DFDT' 1. 'KN' 'DELTAT' 'INCO' 'KN' 'ZONE' $BELL 'OPER' 'DFDT' 1. 'EN' 'DELTAT' 'INCO' 'EN' ; RV=EQEX RV CLIM 'KN' TIMP ENTREE KE 'EN' TIMP ENTREE EE 'TN' TIMP PR 100. 'TN' TIMP ENTREE 20. ; RV.INCO=TABLE 'INCO' ; * Suivi temporel de quelques points lc=lc1 et lc2 ; 'UN' 2 lc1 'KN' lh 'EN' lh 'TN' lc1 ; DEBPROC TEST ityp*entier ksto*entier rv*table ; * 1 : Choleski (valeur par defaut) **** Le reste est non maintenu et ne fonctionne pas sur machine 64bytes** * 2 : gradient conjugue sans preconditionnement * 3 : gradient conjugue avec preconditionnement diagonal * 4 : gradient conjugue avec preconditionnement par Choleski incomplet * 7 : gradient conjugue avec preconditionnement diagonal (variante) * *Pour 2,3,4, la matrice de pression est calculee et stockee une fois *pour toutes. Pour 7, elle n'est jamais stockee explicitement et permet *de ce fait d'atteindre les plus grosses tailles de problemes. * *ityp=1 ; * obtenir ityp*entier ; * *Pour 2,3,4, on propose deux types de stockage : morse et compresse. Le *second type n'est interessant que pour les machines vectorielles. * ksto=0 morse ksto=1 compresse * ksto=0 Valeur par defaut * *ksto=0 ; *obtenir ksto*entier ; si (non (ega ityp 1)); rvp.METHODE.KSTOCK=ksto ; rvp.METHODE.JTEPS=5.E-4; rvp.METHODE.'IPAT'=1; finsi ; RV.'PRESSION' =RVP ; EXEC RV ; FINPROC RV ; un=rv.'INCO'.'UN' ; tn=rv.'INCO'.'TN' ; dq=(abs qs) - (abs qe) ; dqr=dq / (abs qe) ; mess ' Erreur sur la masse ' dqr ; ER1= abs (abs(dqr) - 1.E-10) ; mu= mu2 ** 0.5 ; list evy ; 4.0853 4.0855 4.0848 4.0806 4.0470 3.8455 3.4573 ; mess ' Ecart sur profil de vitesse en sortie ' er2 ; list evt ; 20.005 20.002 20.001 20.001 20.000 20.000 20.000 ; TP=rv.inco.'TP' ; dut=(abs uts) - (abs ute) - fp ; dutr=dut/FP ; ER4= abs (abs(dutr) - .58735) ; si (non COMPLET ) ; si ( ER1 > 1.E-9 ) ; erreur 5 ; finsi ; si ( ER2 > err1 ) ; erreur 5 ; finsi ; si ( ER3 > err1 ) ; erreur 5 ; finsi ; si ( ER4 > err1 ) ; erreur 5 ; finsi ; finsi ; SI ('EGA' GRAPH 'O' ); TAB1=TABLE; TAB1.'TITRE'=TABLE ; TAB1 . 1 ='MARQ REGU ' ; dessin his.'TABD' his.'1UN' ; dessin his.'TABD' his.'2UN' ; dessin his.'TABD' his.'TN' ; dessin his.'TABD' his.'KN' ; dessin his.'TABD' his.'EN' ; trace ung1 bell ; trace pn bell ; trace tn bell ; trace tn paroi; kn=rv.inco.'KN' ; en=rv.inco.'EN' ; nut=0.09*kn*kn/en ; trace nut bell ; trace kn bell ; trace en bell ; FINSI ; FINPROC ; ******************** TESTS ************************** ityp=1 ; ksto = 0 ; rv = test ityp ksto rv ; * ityp=4 ;non maintenu, ne marche pas sur machine 64bytes ityp=1 ; ksto = 0 ; rv = test ityp ksto rv ; * ityp=4 ;non maintenu, ne marche pas sur machine 64bytes ityp=1 ; ksto = 1 ; rv = test ityp ksto rv ; * ityp=3 ;non maintenu, ne marche pas sur machine 64bytes ityp=1 ; ksto = 1 ; rv = test ityp ksto rv ; * ityp=2 ;non maintenu, ne marche pas sur machine 64bytes ityp=1 ; ksto = 1 ; rv = test ityp ksto rv ; post rv graph ; FIN ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales