89 TYPE(t_patch),
POINTER :: ppatch
90 TYPE(t_region
),
POINTER :: pregion
96 LOGICAL :: corrflag,decideprintflag
97 CHARACTER(CHRLEN) :: rcsidentstring
98 INTEGER,
PARAMETER :: max_inoutflow_locs = 10
99 INTEGER :: c1,bcoptfixed,bcopttype,distrib,ifl,indcp,indgs,indmf,indsd, &
101 INTEGER :: loc(max_inoutflow_locs,min_val:max_val)
102 REAL(RFREAL) :: bgl2,bll2,bp,bt,bvl2,cgl2,cll2,cml,cp,cvg,cvl,cvl2, &
103 cvm,cvv,
dx,
dy,
dz,fs,fsu,icpref,irl,mf,mm,nm,nx,ny,nz, &
104 pl,po,pr,pref,press, ql,qr,rl,rel,rer,rg,rgl,rgpgl, &
105 rgpgr,rhogr,rholr,rhovr,rll,rlpll,ro,rr,rref,rul,rur, &
106 rv,rvl,rvpvl,rvpvr,rvr,rwl,rwr, rygl,ryll,ryvl,temp,tl, &
107 to,tr,ul,ur,vfgr,vflr,vfvr,vl,vl2,vm2,vr,vref,wl,wr,xc, &
108 yc,zc,ygl,ygr,yll,ylr,yvl,yvr,vfgl,vfll,vfvl
109 REAL(RFREAL) :: flx(5)
110 REAL(RFREAL),
DIMENSION(:),
POINTER :: mfmixt
111 REAL(RFREAL),
DIMENSION(:,:),
POINTER :: cv,dv,gv,pcvspec,
rhs,vals,sd
112 REAL(RFREAL),
DIMENSION(:,:,:),
POINTER :: grad,pgradspec
119 rcsidentstring =
'$RCSfile: RFLU_CentralSecondPatch_GL.F90,v $'
121 global => pregion%global
124 'RFLU_CentralSecondPatch_GL.F90')
130 indcp = pregion%mixtInput%indCp
131 indmf = pregion%mixtInput%indMfMixt
132 indsd = pregion%mixtInput%indSd
133 indmol = pregion%mixtInput%indMol
135 indgs = pregion%grid%indGs
137 distrib = ppatch%mixt%distrib
139 cv => pregion%mixt%cv
140 dv => pregion%mixt%dv
141 gv => pregion%mixt%gv
142 grad => pregion%mixt%gradCell
143 rhs => pregion%mixt%rhs
144 sd => pregion%mixt%sd
146 pcvspec => pregion%spec%cv
147 pgradspec => pregion%spec%gradCell
149 mfmixt => ppatch%mfMixt
155 pref = global%refPressure
156 rref = global%refDensity
157 vref = global%refVelocity
159 icpref = 2.0_rfreal/(rref*vref*vref)
165 ro = global%refDensityLiq
166 po = global%refPressLiq
167 to = global%refTempLiq
168 bp = global%refBetaPLiq
169 bt = global%refBetaTLiq
170 cvl = global%refCvLiq
172 rg =
mixtperf_r_m(pregion%specInput%specType(1)%pMaterial%molw)
175 rv =
mixtperf_r_m(pregion%specInput%specType(2)%pMaterial%molw)
182 SELECT CASE ( ppatch%bcType )
188 CASE ( bc_inflow_veltemp )
189 vals => ppatch%mixt%vals
190 bcopttype = ppatch%mixt%switches(bcswi_inflow_type)
192 DO ifl = 1,ppatch%nBFaces
193 c1 = ppatch%bf2c(ifl)
195 nx = ppatch%fn(xcoord,ifl)
196 ny = ppatch%fn(ycoord,ifl)
197 nz = ppatch%fn(zcoord,ifl)
198 nm = ppatch%fn(xyzmag,ifl)
200 xc = ppatch%fc(xcoord,ifl)
201 yc = ppatch%fc(ycoord,ifl)
202 zc = ppatch%fc(zcoord,ifl)
204 fs = ppatch%gs(indgs*ifl)
206 rl = cv(cv_mixt_dens,c1)
209 ul = cv(cv_mixt_xmom,c1)*irl
210 vl = cv(cv_mixt_ymom,c1)*irl
211 wl = cv(cv_mixt_zmom,c1)*irl
212 tl = dv(dv_mixt_temp,c1)
214 ygl = pcvspec(1,c1)*irl
215 yvl = pcvspec(2,c1)*irl
217 dx = xc - pregion%grid%cofg(xcoord,c1)
218 dy = yc - pregion%grid%cofg(ycoord,c1)
219 dz = zc - pregion%grid%cofg(zcoord,c1)
221 rl = rl + grad(xcoord,grc_mixt_dens,c1)*
dx &
222 + grad(ycoord,grc_mixt_dens,c1)*
dy &
223 + grad(zcoord,grc_mixt_dens,c1)*
dz
224 ul = ul + grad(xcoord,grc_mixt_xvel,c1)*
dx &
225 + grad(ycoord,grc_mixt_xvel,c1)*
dy &
226 + grad(zcoord,grc_mixt_xvel,c1)*
dz
227 vl = vl + grad(xcoord,grc_mixt_yvel,c1)*
dx &
228 + grad(ycoord,grc_mixt_yvel,c1)*
dy &
229 + grad(zcoord,grc_mixt_yvel,c1)*
dz
230 wl = wl + grad(xcoord,grc_mixt_zvel,c1)*
dx &
231 + grad(ycoord,grc_mixt_zvel,c1)*
dy &
232 + grad(zcoord,grc_mixt_zvel,c1)*
dz
233 tl = tl + grad(xcoord,grc_mixt_temp,c1)*
dx &
234 + grad(ycoord,grc_mixt_temp,c1)*
dy &
235 + grad(zcoord,grc_mixt_temp,c1)*
dz
237 ygl = ygl + pgradspec(xcoord,1,c1)*
dx &
238 + pgradspec(ycoord,1,c1)*
dy &
239 + pgradspec(zcoord,1,c1)*
dz
240 yvl = yvl + pgradspec(xcoord,2,c1)*
dx &
241 + pgradspec(ycoord,2,c1)*
dy &
242 + pgradspec(zcoord,2,c1)*
dz
244 IF ( ygl > 1.0_rfreal)
THEN
247 ELSE IF ( ygl < 0.0_rfreal )
THEN
249 ELSE IF ( yvl > 1.0_rfreal )
THEN
252 ELSE IF ( yvl < 0.0_rfreal )
THEN
256 yll = 1.0_rfreal - ygl - yvl
258 IF ( yll > 1.0_rfreal)
THEN
260 ELSE IF ( yll < 0.0_rfreal)
THEN
264 vl2 = ul*ul + vl*vl + wl*wl
285 cvm = (ryll*cvl + ryvl*cvv + rygl*cvg)/rl
291 cml =
mixtgasliq_c(cvm,rl,pl,rll,rvl,rgl,vfll,vfvl,vfgl, &
292 cll2,cvl2,cgl2,bll2,bvl2,bgl2)
296 rel = rl*cvm*tl + 0.5*rl*vl2
302 ur = vals(bcdat_inflow_u,distrib*ifl)
303 vr = vals(bcdat_inflow_v,distrib*ifl)
304 wr = vals(bcdat_inflow_w,distrib*ifl)
305 temp = vals(bcdat_inflow_t,distrib*ifl)
307 ygr = ppatch%spec%vals(1,distrib*ifl)
308 yvr = ppatch%spec%vals(2,distrib*ifl)
309 ylr = 1.0_rfreal - ygr - yvr
311 IF ( bcopttype /= bcopt_subsonic )
THEN
312 press = vals(bcdat_inflow_p, distrib*ifl)
316 rr = 1.0_rfreal/(ygr/rhogr + yvr/rhovr + ylr/rholr)
317 vfgr = (rr*ygr)/rhogr
318 vfvr = (rr*yvr)/rhovr
319 vflr = (rr*ylr)/rholr
321 press = pl+(
sqrt(ur*ur+vr*vr+wr*wr) &
322 -
sqrt(ul*ul+vl*vl+wl*wl))*rl*cml
326 rr = 1.0_rfreal/(ygr/rhogr + yvr/rhovr + ylr/rholr)
327 vfgr = (rr*ygr)/rhogr
328 vfvr = (rr*yvr)/rhovr
329 vflr = (rr*ylr)/rholr
332 CALL
bcondinflowperf_gl(bcopttype,ro,po,to,bp,bt,cvl,cvv,cvg,rg,rv, &
333 ur,vr,wr,vfgr,vfvr,vflr,temp,press,nx,ny, &
334 nz,rl,rul,rvl,rwl,rel,rgpgl,rvpvl,pl,rr, &
335 rur,rvr,rwr,rer,rgpgr,rvpvr,pr)
337 ql = (rul*nx + rvl*ny + rwl*nz)/rl - fs
338 qr = (rur*nx + rvr*ny + rwr*nz)/rr - fs
340 flx(1) = 0.5_rfreal*(ql* rl + qr* rr )*nm
341 flx(2) = 0.5_rfreal*(ql* rul + pl*nx + qr* rur + pr*nx)*nm
342 flx(3) = 0.5_rfreal*(ql* rvl + pl*ny + qr* rvr + pr*ny)*nm
343 flx(4) = 0.5_rfreal*(ql* rwl + pl*nz + qr* rwr + pr*nz)*nm
344 flx(5) = 0.5_rfreal*(ql*(rel + pl) + pl*fs + qr*(rer + pr) + pr*fs)*nm
346 mfmixt(indmf*ifl) = flx(1)
347 ppatch%cp(ifl) = icpref*(0.5_rfreal*(pl + pr) - pref)
349 rhs(cv_mixt_dens,c1) =
rhs(cv_mixt_dens,c1) + flx(1)
350 rhs(cv_mixt_xmom,c1) =
rhs(cv_mixt_xmom,c1) + flx(2)
351 rhs(cv_mixt_ymom,c1) =
rhs(cv_mixt_ymom,c1) + flx(3)
352 rhs(cv_mixt_zmom,c1) =
rhs(cv_mixt_zmom,c1) + flx(4)
353 rhs(cv_mixt_ener,c1) =
rhs(cv_mixt_ener,c1) + flx(5)
355 sd(sd_xmom,c1*indsd) = sd(sd_xmom,c1*indsd) &
356 + 0.5_rfreal*(rul/rl + rur/rr)*flx(1)
357 sd(sd_ymom,c1*indsd) = sd(sd_ymom,c1*indsd) &
358 + 0.5_rfreal*(rvl/rl + rvr/rr)*flx(1)
359 sd(sd_zmom,c1*indsd) = sd(sd_zmom,c1*indsd) &
360 + 0.5_rfreal*(rwl/rl + rwr/rr)*flx(1)
362 IF ( pregion%irkStep == 1 )
THEN
363 global%massIn = global%massIn -
min(flx(1),0.0_rfreal)
364 global%massOut = global%massOut +
max(flx(1),0.0_rfreal)
367 IF ( (global%checkLevel == check_high) .AND. &
368 (global%verbLevel >= verbose_high) .AND. &
369 (global%myProcid == masterproc) .AND. &
370 (decideprintflag .EQV. .true.) )
THEN
371 IF ( flx(1) > 0.0_rfreal )
THEN
374 IF ( nlocs == 1 )
THEN
375 global%warnCounter = global%warnCounter + 1
377 WRITE(stdout,
'(A,1X,A,1X,I9)') solver_name, &
378 '*** WARNING *** Outflow detected at inflow boundary!'
379 WRITE(stdout,
'(A,3X,A,1X,I5.5)') solver_name,
'Global region:', &
380 pregion%iRegionGlobal
381 IF ( global%flowType == flow_unsteady )
THEN
382 WRITE(stdout,
'(A,3X,A,1X,1PE11.5)') solver_name, &
386 WRITE(stdout,
'(A,3X,A,1X,I6.6)') solver_name, &
387 'Current iteration number:', &
391 WRITE(stdout,
'(A,3X,A,1X,I1)') solver_name, &
392 'Runge-Kutta stage:', &
396 IF ( nlocs <= max_inoutflow_locs )
THEN
397 loc(nlocs,min_val:max_val) = c1
408 bcopttype = ppatch%mixt%switches(bcswi_outflow_type)
410 IF ( bcopttype /= bcopt_supersonic )
THEN
411 vals => ppatch%mixt%vals
414 DO ifl = 1,ppatch%nBFaces
415 c1 = ppatch%bf2c(ifl)
417 nx = ppatch%fn(xcoord,ifl)
418 ny = ppatch%fn(ycoord,ifl)
419 nz = ppatch%fn(zcoord,ifl)
420 nm = ppatch%fn(xyzmag,ifl)
422 xc = ppatch%fc(xcoord,ifl)
423 yc = ppatch%fc(ycoord,ifl)
424 zc = ppatch%fc(zcoord,ifl)
426 fs = ppatch%gs(indgs*ifl)
428 rl = cv(cv_mixt_dens,c1)
431 ul = cv(cv_mixt_xmom,c1)*irl
432 vl = cv(cv_mixt_ymom,c1)*irl
433 wl = cv(cv_mixt_zmom,c1)*irl
434 tl = dv(dv_mixt_temp,c1)
436 ygl = pcvspec(1,c1)*irl
437 yvl = pcvspec(2,c1)*irl
439 dx = xc - pregion%grid%cofg(xcoord,c1)
440 dy = yc - pregion%grid%cofg(ycoord,c1)
441 dz = zc - pregion%grid%cofg(zcoord,c1)
443 rl = rl + grad(xcoord,grc_mixt_dens,c1)*
dx &
444 + grad(ycoord,grc_mixt_dens,c1)*
dy &
445 + grad(zcoord,grc_mixt_dens,c1)*
dz
446 ul = ul + grad(xcoord,grc_mixt_xvel,c1)*
dx &
447 + grad(ycoord,grc_mixt_xvel,c1)*
dy &
448 + grad(zcoord,grc_mixt_xvel,c1)*
dz
449 vl = vl + grad(xcoord,grc_mixt_yvel,c1)*
dx &
450 + grad(ycoord,grc_mixt_yvel,c1)*
dy &
451 + grad(zcoord,grc_mixt_yvel,c1)*
dz
452 wl = wl + grad(xcoord,grc_mixt_zvel,c1)*
dx &
453 + grad(ycoord,grc_mixt_zvel,c1)*
dy &
454 + grad(zcoord,grc_mixt_zvel,c1)*
dz
455 tl = tl + grad(xcoord,grc_mixt_temp,c1)*
dx &
456 + grad(ycoord,grc_mixt_temp,c1)*
dy &
457 + grad(zcoord,grc_mixt_temp,c1)*
dz
459 ygl = ygl + pgradspec(xcoord,1,c1)*
dx &
460 + pgradspec(ycoord,1,c1)*
dy &
461 + pgradspec(zcoord,1,c1)*
dz
462 yvl = yvl + pgradspec(xcoord,2,c1)*
dx &
463 + pgradspec(ycoord,2,c1)*
dy &
464 + pgradspec(zcoord,2,c1)*
dz
466 IF ( ygl > 1.0_rfreal )
THEN
469 ELSE IF ( ygl < 0.0_rfreal )
THEN
471 ELSE IF ( yvl > 1.0_rfreal )
THEN
474 ELSE IF ( yvl < 0.0_rfreal )
THEN
478 yll = 1.0_rfreal - ygl - yvl
480 IF ( yll > 1.0_rfreal)
THEN
482 ELSE IF ( yll < 0.0_rfreal)
THEN
486 vl2 = ul*ul + vl*vl + wl*wl
496 pl =
mixtgasliq_p(ryll,ryvl,rygl,cll2,cvl2,cgl2,rl,ro,po,to,bp,bt,tl)
498 cvm = (ryll*cvl + ryvl*cvv + rygl*cvg)/rl
503 rel = rl*cvm*tl + 0.5*rl*vl2
509 IF ( bcopttype /= bcopt_supersonic )
THEN
510 pr = vals(bcdat_outflow_press,distrib*ifl)
516 cvg,rg,rv,pr,nx,ny,nz,rl,rul,rvl, &
517 rwl,rel,rgpgl,rvpvl,pl,rr,rur,rvr, &
520 ql = (rul*nx + rvl*ny + rwl*nz)/rl - fs
521 qr = (rur*nx + rvr*ny + rwr*nz)/rr - fs
523 flx(1) = 0.5_rfreal*(ql* rl + qr* rr )*nm
524 flx(2) = 0.5_rfreal*(ql* rul + pl*nx + qr* rur + pr*nx)*nm
525 flx(3) = 0.5_rfreal*(ql* rvl + pl*ny + qr* rvr + pr*ny)*nm
526 flx(4) = 0.5_rfreal*(ql* rwl + pl*nz + qr* rwr + pr*nz)*nm
527 flx(5) = 0.5_rfreal*(ql*(rel + pl) + pl*fs + qr*(rer + pr) + pr*fs)*nm
529 mfmixt(indmf*ifl) = flx(1)
530 ppatch%cp(ifl) = icpref*(0.5_rfreal*(pl + pr) - pref)
532 rhs(cv_mixt_dens,c1) =
rhs(cv_mixt_dens,c1) + flx(1)
533 rhs(cv_mixt_xmom,c1) =
rhs(cv_mixt_xmom,c1) + flx(2)
534 rhs(cv_mixt_ymom,c1) =
rhs(cv_mixt_ymom,c1) + flx(3)
535 rhs(cv_mixt_zmom,c1) =
rhs(cv_mixt_zmom,c1) + flx(4)
536 rhs(cv_mixt_ener,c1) =
rhs(cv_mixt_ener,c1) + flx(5)
538 sd(sd_xmom,c1*indsd) = sd(sd_xmom,c1*indsd) &
539 + 0.5_rfreal*(rul/rl + rur/rr)*flx(1)
540 sd(sd_ymom,c1*indsd) = sd(sd_ymom,c1*indsd) &
541 + 0.5_rfreal*(rvl/rl + rvr/rr)*flx(1)
542 sd(sd_zmom,c1*indsd) = sd(sd_zmom,c1*indsd) &
543 + 0.5_rfreal*(rwl/rl + rwr/rr)*flx(1)
545 IF ( pregion%irkStep == 1 )
THEN
546 global%massIn = global%massIn -
min(flx(1),0.0_rfreal)
547 global%massOut = global%massOut +
max(flx(1),0.0_rfreal)
550 IF ( (global%checkLevel == check_high) .AND. &
551 (global%verbLevel >= verbose_high) .AND. &
552 (global%myProcid == masterproc) .AND. &
553 (decideprintflag .EQV. .true.) )
THEN
554 IF ( flx(1) < 0.0_rfreal )
THEN
557 IF ( nlocs == 1 )
THEN
558 global%warnCounter = global%warnCounter + 1
560 WRITE(stdout,
'(A,1X,A,1X,I9)') solver_name, &
561 '*** WARNING *** Inflow detected at outflow boundary!'
562 WRITE(stdout,
'(A,3X,A,1X,I5.5)') solver_name,
'Global region:', &
563 pregion%iRegionGlobal
564 IF ( global%flowType == flow_unsteady )
THEN
565 WRITE(stdout,
'(A,3X,A,1X,1PE11.5)') solver_name, &
569 WRITE(stdout,
'(A,3X,A,1X,I6.6)') solver_name, &
570 'Current iteration number:', &
574 WRITE(stdout,
'(A,3X,A,1X,I1)') solver_name, &
575 'Runge-Kutta stage:', &
579 IF ( nlocs <= max_inoutflow_locs )
THEN
580 loc(nlocs,min_val:max_val) = c1
590 IF ( (global%checkLevel == check_high) .AND. &
591 (global%verbLevel >= verbose_high) .AND. &
592 (global%myProcid == masterproc) .AND. &
593 (decideprintflag .EQV. .true.) .AND. &
595 IF ( nlocs > max_inoutflow_locs )
THEN
596 WRITE(stdout,
'(A,3X,A,1X,I3,1X,A,1X,I9,1X,A)') solver_name, &
597 'Only wrote the first',max_inoutflow_locs,
'of',nlocs, &
598 'outflow faces with inflow.'
600 locinfo_mode_silent,output_mode_anybody)
603 locinfo_mode_silent,output_mode_anybody)
612 DO ifl = 1,ppatch%nBFaces
613 c1 = ppatch%bf2c(ifl)
615 nx = ppatch%fn(xcoord,ifl)
616 ny = ppatch%fn(ycoord,ifl)
617 nz = ppatch%fn(zcoord,ifl)
618 nm = ppatch%fn(xyzmag,ifl)
620 xc = ppatch%fc(xcoord,ifl)
621 yc = ppatch%fc(ycoord,ifl)
622 zc = ppatch%fc(zcoord,ifl)
624 fs = ppatch%gs(indgs*ifl)
627 rl = cv(cv_mixt_dens,c1)
630 ul = cv(cv_mixt_xmom,c1)*irl
631 vl = cv(cv_mixt_ymom,c1)*irl
632 wl = cv(cv_mixt_zmom,c1)*irl
633 tl = dv(dv_mixt_temp,c1)
635 ygl = pcvspec(1,c1)*irl
636 yvl = pcvspec(2,c1)*irl
638 dx = xc - pregion%grid%cofg(xcoord,c1)
639 dy = yc - pregion%grid%cofg(ycoord,c1)
640 dz = zc - pregion%grid%cofg(zcoord,c1)
642 rl = rl + grad(xcoord,grc_mixt_dens,c1)*
dx &
643 + grad(ycoord,grc_mixt_dens,c1)*
dy &
644 + grad(zcoord,grc_mixt_dens,c1)*
dz
645 ul = ul + grad(xcoord,grc_mixt_xvel,c1)*
dx &
646 + grad(ycoord,grc_mixt_xvel,c1)*
dy &
647 + grad(zcoord,grc_mixt_xvel,c1)*
dz
648 vl = vl + grad(xcoord,grc_mixt_yvel,c1)*
dx &
649 + grad(ycoord,grc_mixt_yvel,c1)*
dy &
650 + grad(zcoord,grc_mixt_yvel,c1)*
dz
651 wl = wl + grad(xcoord,grc_mixt_zvel,c1)*
dx &
652 + grad(ycoord,grc_mixt_zvel,c1)*
dy &
653 + grad(zcoord,grc_mixt_zvel,c1)*
dz
654 tl = tl + grad(xcoord,grc_mixt_temp,c1)*
dx &
655 + grad(ycoord,grc_mixt_temp,c1)*
dy &
656 + grad(zcoord,grc_mixt_temp,c1)*
dz
658 ygl = ygl + pgradspec(xcoord,1,c1)*
dx &
659 + pgradspec(ycoord,1,c1)*
dy &
660 + pgradspec(zcoord,1,c1)*
dz
661 yvl = yvl + pgradspec(xcoord,2,c1)*
dx &
662 + pgradspec(ycoord,2,c1)*
dy &
663 + pgradspec(zcoord,2,c1)*
dz
665 IF ( ygl > 1.0_rfreal )
THEN
668 ELSE IF ( ygl < 0.0_rfreal )
THEN
670 ELSE IF ( yvl > 1.0_rfreal )
THEN
673 ELSE IF ( yvl < 0.0_rfreal )
THEN
677 yll = 1.0_rfreal - ygl - yvl
679 IF ( yll > 1.0_rfreal)
THEN
681 ELSE IF ( yll < 0.0_rfreal)
THEN
693 pl =
mixtgasliq_p(ryll,ryvl,rygl,cll2,cvl2,cgl2,rl,ro,po,to,bp,bt,tl)
695 cvm = (ryll*cvl + ryvl*cvv + rygl*cvg)/rl
701 cp = gv(gv_mixt_cp ,indcp *c1)
702 mm = gv(gv_mixt_mol,indmol*c1)
712 mfmixt(indmf*ifl) = 0.0_rfreal
713 ppatch%cp(ifl) = icpref*(pl - pref)
715 rhs(cv_mixt_xmom,c1) =
rhs(cv_mixt_xmom,c1) + flx(2)
716 rhs(cv_mixt_ymom,c1) =
rhs(cv_mixt_ymom,c1) + flx(3)
717 rhs(cv_mixt_zmom,c1) =
rhs(cv_mixt_zmom,c1) + flx(4)
718 rhs(cv_mixt_ener,c1) =
rhs(cv_mixt_ener,c1) + flx(5)
725 CASE ( bc_noslipwall )
726 DO ifl = 1,ppatch%nBFaces
727 c1 = ppatch%bf2c(ifl)
729 nx = ppatch%fn(xcoord,ifl)
730 ny = ppatch%fn(ycoord,ifl)
731 nz = ppatch%fn(zcoord,ifl)
732 nm = ppatch%fn(xyzmag,ifl)
734 xc = ppatch%fc(xcoord,ifl)
735 yc = ppatch%fc(ycoord,ifl)
736 zc = ppatch%fc(zcoord,ifl)
738 fs = ppatch%gs(indgs*ifl)
740 rl = cv(cv_mixt_dens,c1)
741 tl = dv(dv_mixt_temp,c1)
742 ygl = pcvspec(1,c1)*irl
743 yvl = pcvspec(2,c1)*irl
745 dx = xc - pregion%grid%cofg(xcoord,c1)
746 dy = yc - pregion%grid%cofg(ycoord,c1)
747 dz = zc - pregion%grid%cofg(zcoord,c1)
749 rl = rl + grad(xcoord,grc_mixt_dens,c1)*
dx &
750 + grad(ycoord,grc_mixt_dens,c1)*
dy &
751 + grad(zcoord,grc_mixt_dens,c1)*
dz
752 tl = tl + grad(xcoord,grc_mixt_temp,c1)*
dx &
753 + grad(ycoord,grc_mixt_temp,c1)*
dy &
754 + grad(zcoord,grc_mixt_temp,c1)*
dz
756 ygl = ygl + pgradspec(xcoord,1,c1)*
dx &
757 + pgradspec(ycoord,1,c1)*
dy &
758 + pgradspec(zcoord,1,c1)*
dz
759 yvl = yvl + pgradspec(xcoord,2,c1)*
dx &
760 + pgradspec(ycoord,2,c1)*
dy &
761 + pgradspec(zcoord,2,c1)*
dz
763 IF ( ygl > 1.0_rfreal )
THEN
766 ELSE IF ( ygl < 0.0_rfreal )
THEN
768 ELSE IF ( yvl > 1.0_rfreal )
THEN
771 ELSE IF ( yvl < 0.0_rfreal )
THEN
775 yll = 1.0_rfreal - ygl - yvl
777 IF ( yll > 1.0_rfreal)
THEN
779 ELSE IF ( yll < 0.0_rfreal)
THEN
791 pl =
mixtgasliq_p(ryll,ryvl,rygl,cll2,cvl2,cgl2,rl,ro,po,to,bp,bt,tl)
798 mfmixt(indmf*ifl) = 0.0_rfreal
799 ppatch%cp(ifl) = icpref*(pl - pref)
801 rhs(cv_mixt_xmom,c1) =
rhs(cv_mixt_xmom,c1) + flx(2)
802 rhs(cv_mixt_ymom,c1) =
rhs(cv_mixt_ymom,c1) + flx(3)
803 rhs(cv_mixt_zmom,c1) =
rhs(cv_mixt_zmom,c1) + flx(4)
804 rhs(cv_mixt_ener,c1) =
rhs(cv_mixt_ener,c1) + flx(5)
811 CASE ( bc_periodic, &
820 CALL
errorstop(global,err_reached_default,__line__)
subroutine, public rflu_setrindstateinjectperf(cpGas, mmGas, nx, ny, nz, mInj, tInj, pl, fs, rl, ul, vl, wl, Hl)
real(rfreal) function mixtperf_p_deogvm2(D, Eo, G, Vm2)
real(rfreal) function mixtperf_r_m(M)
subroutine, public rflu_setrindstateslipwallperf(cpGas, mmGas, nx, ny, nz, rl, rul, rvl, rwl, fs, pl)
Vector_n max(const Array_n_const &v1, const Array_n_const &v2)
subroutine registerfunction(global, funName, fileName)
real(rfreal) function mixtperf_d_prt(P, R, T)
real(rfreal) function mixtperf_r_cpg(Cp, G)
real(rfreal) function mixtgasliq_p(DYl, DYv, DYg, Cl2, Cv2, Cg2, D, Dz, Po, To, Bp, Bt, T)
subroutine rflu_centralsecondpatch_gl(pRegion, pPatch)
real(rfreal) function, public rflu_descalegridspeed(pRegion, fs)
real(rfreal) function mixtperf_c2_grt(G, R, T)
real(rfreal) function mixtliq_c2_bp(Bp)
subroutine, public rflu_setrindstatefarfieldperf(global, cpGas, mmGas, nx, ny, nz, machInf, pInf, tInf, alphaInf, betaInf, corrFlag, liftCoef, xc, yc, zc, rl, rul, rvl, rwl, rel, rr, rur, rvr, rwr, rer, pr)
Vector_n min(const Array_n_const &v1, const Array_n_const &v2)
real(rfreal) function mixtliq_d_dobpppobttto(Dz, Bp, Bt, P, Po, T, To)
subroutine rflu_printlocinfo(pRegion, locUnsorted, nLocUnsorted, locInfoMode, outputMode)
subroutine bcondinflowperf_gl(bcOptType, ro, po, to, Bp, Bt, cvl, cvv, cvg, Rg, Rv, ur, vr, wr, vfgr, vfvr, vflr, temp, press, nx, ny, nz, rl, rul, rvl, rwl, rel, rgpgl, rvpvl, pl, rr, rur, rvr, rwr, rer, rgpgr, rvpvr, pr)
real(rfreal) function mixtgasliq_c(Cvm, D, P, Dl, Dv, Dg, VFl, VFv, VFg, Cl2, Cv2, Cg2, Bl2, Bv2, Bg2)
LOGICAL function rflu_decideprint(global)
real(rfreal) function mixtperf_eo_dgpuvw(D, G, P, U, V, W)
subroutine errorstop(global, errorCode, errorLine, addMessage)
subroutine bcondoutflowperf_gl(bcOpt, ro, Po, To, betaP, betaT, cvl, cvv, cvg, Rg, Rv, pout, sxn, syn, szn, rho, rhou, rhov, rhow, rhoe, rhogpg, rhovpv, pin, rhob, rhoub, rhovb, rhowb, rhoeb, rhogpgb, rhovpvb)
subroutine deregisterfunction(global)
real(rfreal) function mixtperf_g_cpr(Cp, R)
real(rfreal) function mixtperf_cv_cpr(Cp, R)
real(rfreal) function mixtperf_p_drt(D, R, T)