1 : * XBIF PROCEDUR MAGN 98/12/30 21:15:27 3420 2 : *X XBIF (Procedure) 3 : *X modele bifluide 4 : *X resolution d'equations de Navier-Stokes couplees 5 : 6 : DEBPROC XBIF ; 7 : ARGU RV*TABLE RVP*TABLE RVC*TABLE 8 : KF*FLOTTANT KP*FLOTTANT ; 9 : 10 : idime=vale 'DIME' ; 11 : si (ega idime 2) ; 12 : vnul=0. 0. ; 13 : sinon; 14 : vnul=0. 0. 0. ; 15 : finsi ; 16 : bidon = table ; 17 : 18 : GR=rv.'GR' ; 19 : ALFA=rv.'ALFA' ; 20 : ITMA=rv.'ITMA' ; 21 : FIDT=rv.'FIDT' ; 22 : KIZT=rv.'INCO' ; 23 : 24 : testpr=exist rv 'PRESSION' ; 25 : testdefo=exist rv 'DEFOR' ; 26 : 27 : si testdefo ; 28 : verdefo rv ; 29 : finsi ; 30 : 31 : si (non(exist rv 'HIST')) ; 32 : rv.'HIST'=bidon ; 33 : finsi ; 34 : HIST=rv.'HIST'; 35 : 36 : si (non(exist rv kizd)) ; 37 : kdia rv ; 38 : finsi ; 39 : 40 : si (non(exist rvc kizd)) ; 41 : kdia rvc ; 42 : finsi ; 43 : 44 : si (non(exist rvc kizc)) ; 45 : rvc.kizc=table 'KIZC' ; 46 : finsi ; 47 : 48 : si (non(exist rvc kizg)) ; 49 : rvc.kizg=table 'KIZG' ; 50 : finsi ; 51 : 52 : si (non(exist rv kizg)) ; 53 : rv.kizg=table 'KIZG' ; 54 : finsi ; 55 : KIZG=rv.'KIZG' ; 56 : si (non(exist rv kizg1)) ; 57 : rv.kizg1=table 'KIZG1' ; 58 : finsi ; 59 : KIZG1=rv.'KIZG1' ; 60 : 61 : KD=rv.'KIZD' ; 62 : 63 : si (exist rv kizc) ; 64 : KIZC=rv.'KIZC' ; 65 : sinon ; 66 : KIZC=table 'KIZC' ; 67 : rv.'KIZC'=KIZC ; 68 : finsi ; 69 : 70 : SI testpr ; 71 : dmn=rvp.'DOMAINE' ; 72 : rvp=rv.'PRESSION' ; 73 : U=KIZT.'UN' ; 74 : V=KIZT.'VN' ; 75 : Du=KD.'UN' ; 76 : Dv=KD.'VN' ; 77 : 78 : FV=RVC.'INCO'.'CN' ; 79 : 80 : si (non(exist rvp diagv)) ; 81 : rvp.diagv=Du ; 82 : finsi ; 83 : 84 : rvp.'KIZC' = kizc ; 85 : 86 : si (non(exist rvp 'MATC')) ; 87 : C=kmac rvp ; 88 : rvp.'MATC'=C ; 89 : finsi ; 90 : C=rvp.'MATC' ; 91 : 92 : P=kcht (rvp.domaine) SCAL CENTRE 0.; 93 : rvp.'PRESSION'=P ; 94 : GP=kcht (rvp.domaine) SCAL SOMMET 0.; 95 : FINSI ; 96 : 97 : si (exist rv 'DECDOM') ; 98 : decdom rv ; 99 : quitter xbif ; 100 : finsi ; 101 : 102 : diaga = DGSI $DOMTOT ; 103 : diagb = COPIE diaga ; 104 : diaga = NOMC diaga 'UX' ; 105 : diagb = NOMC diagb 'UY' ; 106 : diaga = CHAN 'ATTRIBUT' diaga 'NATURE' 'DIFFUS' ; 107 : diagb = CHAN 'ATTRIBUT' diagb 'NATURE' 'DIFFUS' ; 108 : diag0 = diaga ET diagb ; 109 : diag = kcht $DOMTOT vect sommet diag0 ; 110 : 111 : nbop=dime (rv.listoper) ; 112 : 113 : REPETER BLOC1 ITMA ; 114 : 115 : repeter bloc2 nbop ; 116 : klop &bloc2 rv ; 117 : fin bloc2 ; 118 : 119 : SI testpr ; 120 : dt=(rv.pasdetps.deltat)*ALFA ; 121 : rvp.deltat=dt ; 122 : P=rvp.'PRESSION' ; 123 : detr P ; 124 : f=KIZG.'UN' ; 125 : g=KIZG.'VN' ; 126 : g2=kops g '-' (kops diag '*' GR) ; 127 : f1=kops f '+' (kops diag '*' (kops KF '*' (kops U '-' V))) ; 128 : g1=kops g2 '+' (kops diag '*' (kops KP '*' (kops V '-' U))) ; 129 : dm1f=kops (kops f1 '/' Du) '-' (kops U '/' dt) ; 130 : P=kmf C dm1f ; 131 : detr dm1f ; 132 : kres rvp P ; 133 : rvp.'PRESSION'=P ; 134 : detr GP ; 135 : gp= kmtp C P ; 136 : GPF=gp ; 137 : RO=ROF/ROP ; 138 : GPP=kops RO '*' gp ; 139 : KIZG.'UN'=kops f1 '-' GPF ; 140 : KIZG.'VN'=kops g1 '-' GPP ; 141 : rset f vnul ; 142 : rset g vnul ; 143 : detr g2 ; detr f1 ; detr g1 ; 144 : dltt= rv.pasdetps.deltat ; 145 : FINSI ; 146 : 147 : avct KIZT KIZC (rv.pasdetps) KIZG KD HIST ALFA 'IMPR' FIDT ; 148 : 149 : si testdefo ; 150 : si (&bloc1 > itd) ; 151 : rvp.'PN'=elno (kcht dmn SCAL CENTRE P) dmn ; 152 : DEFO.'PN'=rvp.'PN' ; 153 : reponse = TDFO DEFO ; 154 : si (ega reponse vrai) ; 155 : DEFO.'MAIL' = KDEF DEFO.'VDEF' dmrv.MAILLAGE ; 156 : quitter XBIF ; 157 : finsi ; 158 : finsi ; 159 : finsi ; 160 : 161 : si (testpr) ; 162 : detr (KIZG.'UN') ; 163 : detr (KIZG.'VN') ; 164 : KIZG.'UN'=f ; 165 : KIZG.'VN'=g ; 166 : finsi ; 167 : 168 : VP = RV.'INCO'.'VN' ; 169 : RVC.1KONV.ARG1 = KSOF $DOMTOT VP ; 170 : RVC.1KONV.ARG2 = NOEL $DOMTOT VP ; 171 : 172 : klop 1 RVC 'MUSCL' ; 173 : rvc.pasdetps.deltat =dltt ; 174 : 175 : avct (RVC.'INCO') (RVC.'KIZC') (rvc.pasdetps) (RVC.'KIZG') 176 : (RVC.'KIZD') (RVP.DOMAINE) (RVC.'ALFA') 'IMPR' (RVC.'FIDT') ; 177 : 178 : menage ; 179 : 180 : FIN BLOC1 ; 181 : 182 : si (testpr) ; 183 : rvp.'PRESSION'=kcht dmn scal centre P ; 184 : rvp.'PN'= elno dmn rvp.'PRESSION' ; 185 : rvp.gradp=GP ; 186 : finsi; 187 : 188 : FINPROC ; 189 :
© Cast3M 2003 - All rights reserved.
Disclaimer