* NSCLIM PROCEDUR MAGN 05/07/25 21:15:01 5133 Si (Exist KIMPR) ; TIMPR = KIMPR ; Sinon ; TIMPR = VRAI ; FinSi ; Si TIMPR ; '#########################' ; FinSi ; Si (NON (EXIST lnomq nomq)) ; Mess ' ERREUR ERREUR ERREUR ERREUR ERREUR ERREUR ' ; Mess ' ' ; Mess 'L entree ' NOMQ ' n existe pas ' ; erreur 21 ; Finsi ; Si((EGA NOMQ 'VITESSE') ou (EGA NOMQ 'DEBIT') ou (EGA NOMQ 'TEMPERATURE') ) ; Si(NON (Exist Udebt)) ; FinSi ; SWIRL=FAUX ; Si(EGA NCO 'SWIRL') ; SWIRL=VRAI ; asw = tps ; Finsi ; Sinon ; NOMT='XXXX' ; FinSi ; FinSi ; Si(EGA NOMQ 'ADHERENCE') ; FinSi ; Si (NON (EXIST lnomg nomg)) ; Mess ' ERREUR ERREUR ERREUR ERREUR ERREUR ERREUR ' ; Mess ' ' ; Mess 'L entree ' NOMG ' n existe pas ' ; erreur 21 ; Finsi ; * * NOMQ = DEBIT Débit imposé (Débit entrant >0) * VITESSE Vitesse imposée (Vitesse entrante >0) * <SWIRL> alfa swirl * TEMPERATURE Température imposée (ou scalaire) * ADHERENCE u=v=w=0 imposées * FPAROI u.n=0 et Fparoi * SYMETRIE u.n=0 et rien si vitesse rien si Température * SORTIE -> p=0 * PRESSION -> p=p0 * NCO nom de la composante * * NOMG = STRICTEMENT * LARGEMENT * * NOMT = SGE * XXXXXXXXX * * *!!!!!!! Petites vérifications !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! * 1/ sentr doit être inclus dans mf * 2/ Faire le 2D * 3/ Traiter les cas des TRI7 -> ELNO QUAD ou MSOMMET * 5/ Objet Chargement * 6/ Completer les CL FPAROI SYMETRIE SORTIE PRESSION * 7/ Dans le cas Strictement le débit est faux *!!!!!!! Petites vérifications !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! *############################################################## * Préparation géométrie calcul normales et tangentes Si (EXIST AT 'nx' ) ; nx = AT.'nx' ; ny = AT.'ny' ; tx = AT.'tx' ; ty = AT.'ty' ; nz = AT.'nz' ; tz = AT.'tz' ; ax = AT.'ax' ; ay = AT.'ay' ; az = AT.'az' ; FinSi ; Sinon ; sent = Sentr ; Si (ega inefmd 3) ; $volr = model volr 'NAVIER_STOKES' 'MACRO' ; $sentr= model sentr 'NAVIER_STOKES' 'MACRO' ; FinSi ; fx = 'FR' ; fy = 'FZ' ; Sinon ; fx = 'FX' ; fy = 'FY' ; finSi ; FinSi ; chnm = chnm **0.5 ; chn = chp / chnm ; * av = ax ay az; av = av * (1./nav) ; * cht = tx + ty + tz ; * ax = (ny * tz) - (nz * ty) ; ay = (nz * tx) - (nx * tz) ; az = (nx * ty) - (ny * tx) ; * * * * AT.'nx' = nx ; AT.'ny' = ny ; AT.'nz' = nz ; MNC=1 ; AT.'MNC' = MNC ; AT.'tx' = tx ; AT.'ty' = ty ; AT.'tz' = tz ; AT.'ax' = ax ; AT.'ay' = ay ; AT.'az' = az ; AT.'chn' = nx + ny + nz ; AT.'cht' = tx + ty + tz ; AT.'cha' = ax + ay + az ; FinSi ; MNC=1 ; AT.'MNC' = MNC ; AT.'tx' = tx ; AT.'ty' = ty ; AT.'nx' = nx ; AT.'ny' = ny ; AT.'chn' = nx + ny ; AT.'cht' = tx + ty ; FinSi ; AT.'Sentr'=Sentr ; Sinon ; CSentr = MANU 'SEG2' (Sentr POINT 'INITIAL') (Sentr POINT 'FINAL'); FinSi ; pax = (CSentr1 'POINT' 'DROIT' (0. 0.) (0. 1.e5) dr) ; FinSi ; AT.'Sentro' = Sentro ; AT.'Csentr1'= Csentr1 ; Si TIMPR ; FinSi ; Mess ' ERREUR ERREUR ERREUR ERREUR ERREUR ERREUR ' ; Mess ' ' ; erreur 21 ; Finsi ; * On en déduit que connaissant q on a u = q*q1 ; AT.'Setr' = Setr ; * Calcul du facteur géométrique EF * list AT.'chn'; * v1 = kcht $Sentr vect sommet (0. 0. 1.) ; * list v1 ; * ung = vect v1 0.1 ux uy uz jaune ; * trace ung (doma $Sentr maillage) ; * * trace (doma $Sentr maillage) TITR 'Sentr'; * list q1 ; AT.'facgeo' = Setr/q1 'ABS' ; mess tit ' Surface = ' Setr ' Facteur géométrique ' AT.'facgeo' ; AT.'Sentro' = Sentro ; AT.'CSentr' = CSentr ; FinSi ; *############################################################## Sentr = AT.'Sentr' ; Setr = AT.'Setr' ; Si(NON(EGA NOMQ 'ADHERENCE')) ; IK1=0 ; Si (NON (EXIST Udebt)) ; Ud = Udeb ; IK1 = IK1 + 1 ; FinSi ; Si (EXIST Udebt) ; IK1 = IK1 + 1 ; FinSi ; Si (NON (EGA IK1 1 )) ; ERREUR 5 ; FinSi ; FinSi ; Si(EGA NOMQ 'DEBIT') ; Qd = Ud ; Ud = Ud / Setr ; Si (EGA NOMG 'STRICTEMENT'); Ud = Ud * AT.'facgeo';FinSi ; FinSi ; Si(EGA NOMQ 'VITESSE') ; Qd = Ud * Setr ; FinSi ; Si(EGA NOMQ 'TEMPERATURE') ; Qd = ' ' ; FinSi ; Si TIMPR ; ' Ud = ' Ud 'Qd = ' Qd ; FinSi ; *************************************************************** * Imposition d'une fluctuation Si TIMPR ; ' Ecart type ' sgm ' portée ' portee ; FinSi ; * Ne concerne que VITESSE et DEBIT Si(NON ((EGA NOMQ 'VITESSE') ou (EGA NOMQ 'DEBIT'))) ; Mess ' ERREUR ERREUR ERREUR ERREUR ERREUR ERREUR ' ; Mess ' ' ; Mess 'L imposition d une fluctuation ne concerne que ' ; erreur 21 ; Finsi ; * La portee doit être > 0 Si (portee '<EG' 0.) ; ERREUR 5 ; FinSi ; sgp = sgm / 2. ; Si (NON (EXIST AT 'unct1' )) ; * initialisation unct1,uncn1,unca1 unct2='ALEA' 'BANDES_TOURNANTES' Sentr 'EXPO' 'SIGMA' sgp 'MOYENNE' Ud 'LAMBDA' portee ; unct2=(unct2 - Ud) ; * trace unct2 Sentr TITR 'unct2' ; uncn2='ALEA' 'BANDES_TOURNANTES' Sentr 'EXPO' 'SIGMA' sgm 'MOYENNE' Ud 'LAMBDA' portee ; * trace uncn2 Sentr TITR 'uncn2' ; unca2='ALEA' 'BANDES_TOURNANTES' Sentr 'EXPO' 'SIGMA' sgp 'MOYENNE' Ud 'LAMBDA' portee ; unca2=(unca2 - Ud) ; * trace unca2 Sentr TITR 'unca1' ; AT.'unct2' = unct2 ; AT.'uncn2' = uncn2 ; AT.'unca2' = unca2 ; AT.'t1' = 0. ; AT.'t2' = 0.1*Tps ; FinSi ; t1 = AT.'t1' ; t2 = AT.'t2' ; alf = (Tps - t1)/(t2 - t1) ; Si (ALF >EG 1.) ; alf = 0. ; AT.'unct1'=AT.'unct2' ; AT.'uncn1'=AT.'uncn2' ; AT.'unca1'=AT.'unca2' ; t1 = Tps ; t2 = Tps + (portee / (abs Ud)) ; AT.'t1'= t1 ; AT.'t2'= t2 ; unct2='ALEA' 'BANDES_TOURNANTES' Sentr 'EXPO' 'SIGMA' sgp 'MOYENNE' Ud 'LAMBDA' portee ; unct2=(unct2 - Ud); * trace unct2 Sentr TITR 'unct2' ; uncn2='ALEA' 'BANDES_TOURNANTES' Sentr 'EXPO' 'SIGMA' sgm 'MOYENNE' Ud 'LAMBDA' portee ; * trace uncn2 Sentr TITR 'uncn2' ; unca2='ALEA' 'BANDES_TOURNANTES' Sentr 'EXPO' 'SIGMA' sgp 'MOYENNE' Ud 'LAMBDA' portee ; unca2=(unca2 - Ud); * trace unca2 Sentr TITR 'unca2' ; AT.'unct2' = unct2 ; AT.'uncn2' = uncn2 ; AT.'unca2' = unca2 ; FinSi ; unct1=AT.'unct1' ; unct2=AT.'unct2' ; uncn1=AT.'uncn1' ; uncn2=AT.'uncn2' ; unca1=AT.'unca1' ; unca2=AT.'unca2' ; unct = (alf * unct1) + ((1. - alf) * unct2); uncn = (alf * uncn1) + ((1. - alf) * uncn2); unca = (alf * unca1) + ((1. - alf) * unca2); Si TIMPR ; trace uncn Sentr TITR tt ; trace unca Sentr TITR tt ; FinSi ; Sinon ; *************************************************************** uncn = Ud ; unct = 0. ; unca = 0. ; FinSi ; *************************************************************** Si((EGA NOMQ 'VITESSE') ou (EGA NOMQ 'DEBIT')) ; Si SWIRL ; R = (xw*xw)+(yw*yw)+(zw*zw) **0.5 ; sw = (Ud/R0)*asw ; FinSi ; FinSi ; UCxyz = UCxyzn et UCxyzt ; UCxyz = UCxyz et UCxyza ; FinSi ; * UCxyz = (UCxyzn*0.) et UCxyzt et UCxyza; Si (EGA NOMG 'LARGEMENT') ; *************************************************** * NNC=chai AT.'MNC' NCO ; * UCc = EXCO (REDU UCxyzn (AT.'CSentr')) NNC NNC ; * Sur la paroi seule la composante normale est retenue * Il semblerait plus simple et correct de faire comme suit *************************************************** FinSi ; Si (EGA NOMG 'STRICTEMENT') ; FinSi ; Si TIMPR ; Sinon ; FinSi ; FinSi ; FinSi ; Si(EGA NOMQ 'TEMPERATURE') ; Si (EGA NOMG 'STRICTEMENT') ; FinSi ; Si TIMPR ; trace UCxyz Sentr TITR titt ; FinSi ; FinSi ; Si(EGA NOMQ 'ADHERENCE') ; UCxyz=UCxyz FinSi ; Si (EGA NOMG 'STRICTEMENT') ; FinSi ; FinSi ; Si(EXIST CLIM) ; Sinon ; FinSi ; Si TIMPR ; '#########################' ; FinSi ;
© Cast3M 2003 - Tous droits réservés.
Mentions légales