75 CHARACTER(CHRLEN) :: RCSIdentString = &
76 '$RCSfile: RFLO_ModBoundaryConditions.F90,v $ $Revision: 1.30 $'
106 #include "Indexing.h"
109 TYPE(t_region
) :: region
113 INTEGER :: idum,
i,
j,
k, n1, n2
117 INTEGER :: ilev, lbound, icoff, ijcoff, inoff, ijnoff, noff, distrib
118 INTEGER :: indcp, indmol, gasmodel, ijkc, ijkc1, ijkd, ijkn, i2d
121 REAL(RFREAL) :: sgn, ds, sxn, syn, szn
122 REAL(RFREAL) :: mach, attack, slip, press, temp, pb
123 REAL(RFREAL),
POINTER :: cv(:,:), dv(:,:), gv(:,:), vals(:,:), sface(:,:)
128 'RFLO_ModBoundaryConditions.F90' )
132 ilev = region%currLevel
133 lbound =
patch%lbound
142 distrib =
patch%mixt%distrib
143 indcp = region%levels(ilev)%mixt%indCp
144 indmol = region%levels(ilev)%mixt%indMol
145 gasmodel = region%mixtInput%gasModel
147 cv => region%levels(ilev)%mixt%cv
148 dv => region%levels(ilev)%mixt%dv
149 gv => region%levels(ilev)%mixt%gv
150 vals =>
patch%mixt%vals
158 IF (lbound==2 .OR. lbound==4 .OR. lbound==6)
THEN
167 IF (lbound==1 .OR. lbound==2) sface => region%levels(ilev)%grid%si
168 IF (lbound==3 .OR. lbound==4) sface => region%levels(ilev)%grid%sj
169 IF (lbound==5 .OR. lbound==6) sface => region%levels(ilev)%grid%sk
173 DO idum=1,region%nDumCells
180 ijkc = indijk(
i,
j,
k,icoff,ijcoff)
182 ds =
sqrt(sface(xcoord,ijkn)*sface(xcoord,ijkn)+ &
183 sface(ycoord,ijkn)*sface(ycoord,ijkn)+ &
184 sface(zcoord,ijkn)*sface(zcoord,ijkn))
185 sxn = sgn*sface(xcoord,ijkn)/ds
186 syn = sgn*sface(ycoord,ijkn)/ds
187 szn = sgn*sface(zcoord,ijkn)/ds
189 IF (lbound==1 .OR. lbound==2)
THEN
192 ELSE IF (lbound==3 .OR. lbound==4)
THEN
195 ELSE IF (lbound==5 .OR. lbound==6)
THEN
199 i2d = distrib * indij(n1,n2,noff)
201 IF (gasmodel == gas_model_tcperf)
THEN
202 mach = vals(bcdat_farf_mach ,i2d)
203 attack = vals(bcdat_farf_attack,i2d)
204 slip = vals(bcdat_farf_slip ,i2d)
205 press = vals(bcdat_farf_press ,i2d)
206 temp = vals(bcdat_farf_temp ,i2d)
208 gv(gv_mixt_cp ,ijkc*indcp),gv(gv_mixt_mol ,ijkc*indmol), &
209 cv(cv_mixt_dens,ijkc) ,cv(cv_mixt_xmom,ijkc) , &
210 cv(cv_mixt_ymom,ijkc) ,cv(cv_mixt_zmom,ijkc) , &
211 cv(cv_mixt_ener,ijkc) ,dv(dv_mixt_pres,ijkc) , &
212 cv(cv_mixt_dens,ijkd) ,cv(cv_mixt_xmom,ijkd) , &
213 cv(cv_mixt_ymom,ijkd) ,cv(cv_mixt_zmom,ijkd) , &
214 cv(cv_mixt_ener,ijkd) ,pb )
216 CALL
errorstop( region%global,err_unknown_bc,&
221 ijkc = indijk(
i-(idum-1)*
idir,
j-(idum-1)*
jdir,
k-(idum-1)*
kdir,icoff,ijcoff)
222 ijkc1 = indijk(
i-(idum-2)*
idir,
j-(idum-2)*
jdir,
k-(idum-2)*
kdir,icoff,ijcoff)
224 cv(cv_mixt_dens,ijkd) = 2._rfreal*cv(cv_mixt_dens,ijkc ) - &
225 cv(cv_mixt_dens,ijkc1)
226 cv(cv_mixt_xmom,ijkd) = 2._rfreal*cv(cv_mixt_xmom,ijkc ) - &
227 cv(cv_mixt_xmom,ijkc1)
228 cv(cv_mixt_ymom,ijkd) = 2._rfreal*cv(cv_mixt_ymom,ijkc ) - &
229 cv(cv_mixt_ymom,ijkc1)
230 cv(cv_mixt_zmom,ijkd) = 2._rfreal*cv(cv_mixt_zmom,ijkc ) - &
231 cv(cv_mixt_zmom,ijkc1)
232 cv(cv_mixt_ener,ijkd) = 2._rfreal*cv(cv_mixt_ener,ijkc ) - &
233 cv(cv_mixt_ener,ijkc1)
236 IF (gasmodel == gas_model_tcperf)
THEN
275 #include "Indexing.h"
278 TYPE(t_region
) :: region
282 INTEGER :: idum,
i,
j,
k, n1, n2
286 INTEGER :: ilev, lbound, icoff, ijcoff, inoff, ijnoff, noff, bctype, &
287 distrib, bcoptfixed, bcopttype, bcoptmodel
288 INTEGER :: indcp, indmol, gasmodel, ijkc, ijkc1, ijkd, ijkn, i2d
290 INTEGER :: ijkf, ifluc
292 REAL(RFREAL) :: sgn, ds, sxn, syn, szn, pr, mach, amp, eps, ravgtim
293 REAL(RFREAL) :: fluc(bcdat_inflow_nelm)
294 REAL(RFREAL),
POINTER :: cv(:,:), dv(:,:), gv(:,:), vals(:,:), sface(:,:)
295 REAL(RFREAL),
POINTER :: tav(:,:)
300 'RFLO_ModBoundaryConditions.F90' )
304 ifluc = region%global%infloNijk
305 ilev = region%currLevel
306 lbound =
patch%lbound
315 bctype =
patch%bcType
316 distrib =
patch%mixt%distrib
317 bcopttype =
patch%mixt%switches(bcswi_inflow_type)
318 bcoptfixed =
patch%mixt%switches(bcswi_inflow_fixed)
319 bcoptmodel =
patch%mixt%switches(bcswi_inflow_model)
320 amp =
patch%mixt%amplitude
321 indcp = region%levels(ilev)%mixt%indCp
322 indmol = region%levels(ilev)%mixt%indMol
323 gasmodel = region%mixtInput%gasModel
325 cv => region%levels(ilev)%mixt%cv
326 dv => region%levels(ilev)%mixt%dv
327 gv => region%levels(ilev)%mixt%gv
328 vals =>
patch%mixt%vals
333 eps = 100._rfreal*epsilon( 1._rfreal )
336 IF (bcoptmodel == bcopt_unsteady)
THEN
337 ravgtim = 1._rfreal/(region%global%integrTime + eps)
338 tav => region%levels(ilev)%mixt%tav
349 IF (lbound==2 .OR. lbound==4 .OR. lbound==6)
THEN
358 IF (lbound==1 .OR. lbound==2) sface => region%levels(ilev)%grid%si
359 IF (lbound==3 .OR. lbound==4) sface => region%levels(ilev)%grid%sj
360 IF (lbound==5 .OR. lbound==6) sface => region%levels(ilev)%grid%sk
364 DO idum=1,region%nDumCells
371 ijkc = indijk(
i,
j,
k,icoff,ijcoff)
373 ds =
sqrt(sface(xcoord,ijkn)*sface(xcoord,ijkn)+ &
374 sface(ycoord,ijkn)*sface(ycoord,ijkn)+ &
375 sface(zcoord,ijkn)*sface(zcoord,ijkn))
376 sxn = sgn*sface(xcoord,ijkn)/ds
377 syn = sgn*sface(ycoord,ijkn)/ds
378 szn = sgn*sface(zcoord,ijkn)/ds
380 IF (lbound==1 .OR. lbound==2)
THEN
383 ELSE IF (lbound==3 .OR. lbound==4)
THEN
386 ELSE IF (lbound==5 .OR. lbound==6)
THEN
390 i2d = distrib * indij(n1,n2,noff)
393 ijkf = indijk(
ibeg+ifluc-1,
j,
k,icoff,ijcoff)
394 ELSEIF (lbound==2)
THEN
395 ijkf = indijk(
iend-ifluc+1,
j,
k,icoff,ijcoff)
396 ELSEIF (lbound==3)
THEN
397 ijkf = indijk(
i,
jbeg+ifluc-1,
k,icoff,ijcoff)
398 ELSEIF (lbound==4)
THEN
399 ijkf = indijk(
i,
jbeg-ifluc+1,
k,icoff,ijcoff)
400 ELSEIF (lbound==5)
THEN
401 ijkf = indijk(
i,
j,
kbeg+ifluc-1,icoff,ijcoff)
402 ELSEIF (lbound==6)
THEN
403 ijkf = indijk(
i,
j,
kbeg-ifluc+1,icoff,ijcoff)
406 IF (gasmodel == gas_model_tcperf)
THEN
408 IF ((bctype == bc_inflow_veltemp .OR. &
409 bctype == bc_inflow_velpress) .AND. &
410 (region%global%integrTime > eps) .AND. &
411 (region%global%infloNijk < nijk_inflow_init))
THEN
413 fluc(bcdat_inflow_u), &
414 fluc(bcdat_inflow_v), &
415 fluc(bcdat_inflow_w), &
416 fluc(bcdat_inflow_t), &
417 fluc(bcdat_inflow_p), &
418 dv(dv_mixt_uvel,ijkf), &
419 dv(dv_mixt_vvel,ijkf), &
420 dv(dv_mixt_wvel,ijkf), &
421 dv(dv_mixt_temp,ijkf), &
422 dv(dv_mixt_pres,ijkf), &
423 tav(2,ijkf)*ravgtim, &
424 tav(3,ijkf)*ravgtim, &
425 tav(4,ijkf)*ravgtim, &
426 tav(5,ijkf)*ravgtim, &
427 tav(6,ijkf)*ravgtim )
434 IF (bctype == bc_inflow_totang)
THEN
436 IF (bcopttype == bcopt_subsonic)
THEN
439 mach = vals(bcdat_inflow_mach,i2d)
441 IF (bcoptmodel == bcopt_unsteady)
THEN
442 CALL
errorstop( region%global,err_val_bcval,&
444 'RECYCTURB > 0 not available for BC_INFLOW_TOTANG' )
447 vals(bcdat_inflow_ptot ,i2d), &
448 vals(bcdat_inflow_ttot ,i2d), &
449 vals(bcdat_inflow_betah,i2d), &
450 vals(bcdat_inflow_betav,i2d), &
452 gv(gv_mixt_cp ,ijkc*indcp ), &
453 gv(gv_mixt_mol ,ijkc*indmol), &
454 cv(cv_mixt_dens,ijkc) , &
455 cv(cv_mixt_xmom,ijkc) , &
456 cv(cv_mixt_ymom,ijkc) , &
457 cv(cv_mixt_zmom,ijkc) , &
458 cv(cv_mixt_dens,ijkd) , &
459 cv(cv_mixt_xmom,ijkd) , &
460 cv(cv_mixt_ymom,ijkd) , &
461 cv(cv_mixt_zmom,ijkd) , &
462 cv(cv_mixt_ener,ijkd),pr )
464 ELSEIF (bctype == bc_inflow_veltemp)
THEN
467 vals(bcdat_inflow_u ,i2d)+amp*fluc(bcdat_inflow_u), &
468 vals(bcdat_inflow_v ,i2d)+amp*fluc(bcdat_inflow_v), &
469 vals(bcdat_inflow_w ,i2d)+amp*fluc(bcdat_inflow_w), &
470 vals(bcdat_inflow_t ,i2d)+amp*fluc(bcdat_inflow_t), &
471 vals(bcdat_inflow_p ,i2d)+amp*fluc(bcdat_inflow_p), &
473 gv(gv_mixt_cp ,ijkc*indcp),gv(gv_mixt_mol ,ijkc*indmol), &
474 cv(cv_mixt_dens,ijkc) ,cv(cv_mixt_xmom,ijkc) , &
475 cv(cv_mixt_ymom,ijkc) ,cv(cv_mixt_zmom,ijkc) , &
476 cv(cv_mixt_ener,ijkc) ,dv(dv_mixt_pres,ijkc) , &
477 cv(cv_mixt_dens,ijkd) ,cv(cv_mixt_xmom,ijkd) , &
478 cv(cv_mixt_ymom,ijkd) ,cv(cv_mixt_zmom,ijkd) , &
479 cv(cv_mixt_ener,ijkd) )
488 ELSEIF (bctype == bc_inflow_velpress)
THEN
491 vals(bcdat_inflow_u ,i2d)+amp*fluc(bcdat_inflow_u), &
492 vals(bcdat_inflow_v ,i2d)+amp*fluc(bcdat_inflow_v), &
493 vals(bcdat_inflow_w ,i2d)+amp*fluc(bcdat_inflow_w), &
494 vals(bcdat_inflow_t ,i2d)+amp*fluc(bcdat_inflow_t), &
495 vals(bcdat_inflow_p ,i2d)+amp*fluc(bcdat_inflow_p), &
497 gv(gv_mixt_cp ,ijkc*indcp),gv(gv_mixt_mol ,ijkc*indmol), &
498 cv(cv_mixt_dens,ijkc) ,cv(cv_mixt_xmom,ijkc) , &
499 cv(cv_mixt_ymom,ijkc) ,cv(cv_mixt_zmom,ijkc) , &
500 cv(cv_mixt_ener,ijkc) ,dv(dv_mixt_pres,ijkc) , &
501 cv(cv_mixt_dens,ijkd) ,cv(cv_mixt_xmom,ijkd) , &
502 cv(cv_mixt_ymom,ijkd) ,cv(cv_mixt_zmom,ijkd) , &
503 cv(cv_mixt_ener,ijkd) )
514 CALL
errorstop( region%global,err_unknown_bc,&
519 ijkc = indijk(
i-(idum-1)*
idir,
j-(idum-1)*
jdir,
k-(idum-1)*
kdir,icoff,ijcoff)
520 ijkc1 = indijk(
i-(idum-2)*
idir,
j-(idum-2)*
jdir,
k-(idum-2)*
kdir,icoff,ijcoff)
522 cv(cv_mixt_dens,ijkd) = 2._rfreal*cv(cv_mixt_dens,ijkc ) - &
523 cv(cv_mixt_dens,ijkc1)
524 cv(cv_mixt_xmom,ijkd) = 2._rfreal*cv(cv_mixt_xmom,ijkc ) - &
525 cv(cv_mixt_xmom,ijkc1)
526 cv(cv_mixt_ymom,ijkd) = 2._rfreal*cv(cv_mixt_ymom,ijkc ) - &
527 cv(cv_mixt_ymom,ijkc1)
528 cv(cv_mixt_zmom,ijkd) = 2._rfreal*cv(cv_mixt_zmom,ijkc ) - &
529 cv(cv_mixt_zmom,ijkc1)
530 cv(cv_mixt_ener,ijkd) = 2._rfreal*cv(cv_mixt_ener,ijkc ) - &
531 cv(cv_mixt_ener,ijkc1)
534 IF (gasmodel == gas_model_tcperf)
THEN
569 #include "Indexing.h"
572 TYPE(t_region
) :: region
576 INTEGER ::
i,
j,
k, n1, n2
581 INTEGER :: icoff, ijcoff, inoff, ijnoff, noff, ijkc, ijkn, i2d
584 REAL(RFREAL) :: pb, sdens, coeff, power
585 REAL(RFREAL) :: sgn, ds, mrate, sxn, syn, szn
586 REAL(RFREAL),
POINTER :: dv(:,:), vals(:,:), sface(:,:)
591 'RFLO_ModBoundaryConditions.F90' )
595 ilev = region%currLevel
596 lbound =
patch%lbound
605 distrib =
patch%mixt%distrib
607 dv => region%levels(ilev)%mixt%dv
608 vals =>
patch%mixt%vals
616 IF (lbound==2 .OR. lbound==4 .OR. lbound==6)
THEN
625 IF (lbound==1 .OR. lbound==2) sface => region%levels(ilev)%grid%si
626 IF (lbound==3 .OR. lbound==4) sface => region%levels(ilev)%grid%sj
627 IF (lbound==5 .OR. lbound==6) sface => region%levels(ilev)%grid%sk
634 ijkc = indijk(
i,
j,
k,icoff,ijcoff)
636 ds =
sqrt(sface(xcoord,ijkn)*sface(xcoord,ijkn)+ &
637 sface(ycoord,ijkn)*sface(ycoord,ijkn)+ &
638 sface(zcoord,ijkn)*sface(zcoord,ijkn))
639 sxn = sgn*sface(xcoord,ijkn)/ds
640 syn = sgn*sface(ycoord,ijkn)/ds
641 szn = sgn*sface(zcoord,ijkn)/ds
643 IF (lbound==1 .OR. lbound==2)
THEN
646 ELSE IF (lbound==3 .OR. lbound==4)
THEN
649 ELSE IF (lbound==5 .OR. lbound==6)
THEN
653 i2d = distrib * indij(n1,n2,noff)
654 sdens = vals(bcdat_inject_sdens ,i2d)
655 coeff = vals(bcdat_inject_acoeff,i2d)
656 power = vals(bcdat_inject_npower,i2d)
657 pb = dv(dv_mixt_pres,ijkc)
658 vals(bcdat_inject_mfrate,i2d) = sdens*coeff*(pb**power)
660 mrate = vals(bcdat_inject_mfrate,i2d)
661 vals(bcdat_inject_rfvfu,i2d) = -mrate*sxn
662 vals(bcdat_inject_rfvfv,i2d) = -mrate*syn
663 vals(bcdat_inject_rfvfw,i2d) = -mrate*szn
700 #include "Indexing.h"
703 TYPE(t_region
) :: region
707 INTEGER :: idum,
i,
j,
k, n1, n2
710 INTEGER ::
ibeg,
iend,
jbeg,
jend,
kbeg, kend,
idir,
jdir,
kdir, ilev, lbound
711 INTEGER :: icoff, ijcoff, inoff, ijnoff, noff, ijkc, ijkc1, ijkd, ijkn, i2d
712 INTEGER :: distrib, gasmodel, flowmodel, dumextrapol, bctype
715 REAL(RFREAL) :: sgn, rhoa, rhoua, rhova, rhowa, rhoea, pa
716 REAL(RFREAL) :: mrate, tburn, rhovrel(3), rgas, ds, sxn, syn, szn
717 REAL(RFREAL) :: uinj, vinj, winj, rhodum, rhoedum, maxchange
718 REAL(RFREAL),
POINTER :: cv(:,:), dv(:,:), gv(:,:), vals(:,:), sface(:,:)
723 'RFLO_ModBoundaryConditions.F90' )
727 ilev = region%currLevel
728 lbound =
patch%lbound
737 bctype =
patch%bcType
738 distrib =
patch%mixt%distrib
739 dumextrapol =
patch%mixt%switches(bcswi_inject_extrap)
740 maxchange =
patch%mixt%maxChange
741 gasmodel = region%mixtInput%gasModel
742 flowmodel = region%mixtInput%flowModel
743 indcp = region%levels(ilev)%mixt%indCp
744 indmol = region%levels(ilev)%mixt%indMol
746 cv => region%levels(ilev)%mixt%cv
747 dv => region%levels(ilev)%mixt%dv
748 gv => region%levels(ilev)%mixt%gv
749 vals =>
patch%mixt%vals
757 IF (lbound==2 .OR. lbound==4 .OR. lbound==6)
THEN
766 IF (lbound==1 .OR. lbound==2) sface => region%levels(ilev)%grid%si
767 IF (lbound==3 .OR. lbound==4) sface => region%levels(ilev)%grid%sj
768 IF (lbound==5 .OR. lbound==6) sface => region%levels(ilev)%grid%sk
772 DO idum=1,region%nDumCells
776 ijkc = indijk(
i-(idum-1)*
idir,
j-(idum-1)*
jdir,
k-(idum-1)*
kdir,icoff,ijcoff)
777 ijkc1 = indijk(
i-(idum-2)*
idir,
j-(idum-2)*
jdir,
k-(idum-2)*
kdir,icoff,ijcoff)
780 ds =
sqrt(sface(xcoord,ijkn)*sface(xcoord,ijkn)+ &
781 sface(ycoord,ijkn)*sface(ycoord,ijkn)+ &
782 sface(zcoord,ijkn)*sface(zcoord,ijkn))
783 sxn = sgn*sface(xcoord,ijkn)/ds
784 syn = sgn*sface(ycoord,ijkn)/ds
785 szn = sgn*sface(zcoord,ijkn)/ds
787 IF (lbound==1 .OR. lbound==2)
THEN
790 ELSE IF (lbound==3 .OR. lbound==4)
THEN
793 ELSE IF (lbound==5 .OR. lbound==6)
THEN
797 i2d = distrib * indij(n1,n2,noff)
798 mrate = vals(bcdat_inject_mfrate,i2d)
799 tburn = vals(bcdat_inject_temp ,i2d)
800 rhovrel(1) = vals(bcdat_inject_rfvfu ,i2d)
801 rhovrel(2) = vals(bcdat_inject_rfvfv ,i2d)
802 rhovrel(3) = vals(bcdat_inject_rfvfw ,i2d)
807 IF ((mrate>0._rfreal .AND. idum==1) .OR. &
808 (bctype == bc_injection_ht))
THEN
809 IF (gasmodel == gas_model_tcperf)
THEN
811 gv(gv_mixt_cp ,ijkc*indcp ), &
812 gv(gv_mixt_mol ,ijkc*indmol), &
813 dv(dv_mixt_pres,ijkc ), &
814 rhoa,rhoua,rhova,rhowa,rhoea,pa, &
817 CALL
errorstop( region%global,err_unknown_bc,&
821 rhodum = 2._rfreal*rhoa - cv(cv_mixt_dens,ijkc)
822 rhoedum = 2._rfreal*rhoea - cv(cv_mixt_ener,ijkc)
823 IF (rhodum<=0._rfreal .OR. rhoedum<=0._rfreal .OR. &
824 abs(dv(dv_mixt_temp,ijkc)-tburn)>maxchange*tburn .OR. &
825 dumextrapol==extrapol_const)
THEN
826 cv(cv_mixt_dens,ijkd) = rhoa
827 cv(cv_mixt_xmom,ijkd) = rhoua
828 cv(cv_mixt_ymom,ijkd) = rhova
829 cv(cv_mixt_zmom,ijkd) = rhowa
830 cv(cv_mixt_ener,ijkd) = rhoea
832 cv(cv_mixt_dens,ijkd) = 2._rfreal*rhoa - cv(cv_mixt_dens,ijkc)
833 cv(cv_mixt_xmom,ijkd) = 2._rfreal*rhoua - cv(cv_mixt_xmom,ijkc)
834 cv(cv_mixt_ymom,ijkd) = 2._rfreal*rhova - cv(cv_mixt_ymom,ijkc)
835 cv(cv_mixt_zmom,ijkd) = 2._rfreal*rhowa - cv(cv_mixt_zmom,ijkc)
836 cv(cv_mixt_ener,ijkd) = 2._rfreal*rhoea - cv(cv_mixt_ener,ijkc)
841 ELSE IF (flowmodel == flow_euler)
THEN
842 rhodum = 2._rfreal*cv(cv_mixt_dens,ijkc) - cv(cv_mixt_dens,ijkc1)
843 rhoedum = 2._rfreal*cv(cv_mixt_ener,ijkc) - cv(cv_mixt_ener,ijkc1)
844 IF (rhodum<=0._rfreal .OR. rhoedum<=0._rfreal .OR. &
845 abs(cv(cv_mixt_dens,ijkd)-rhodum)> &
846 maxchange*cv(cv_mixt_dens,ijkd) .OR. &
847 abs(cv(cv_mixt_ener,ijkd)-rhoedum)> &
848 maxchange*cv(cv_mixt_ener,ijkd) .OR. &
849 dumextrapol==extrapol_const)
THEN
850 cv(cv_mixt_dens,ijkd) = cv(cv_mixt_dens,ijkc)
851 cv(cv_mixt_xmom,ijkd) = cv(cv_mixt_xmom,ijkc)
852 cv(cv_mixt_ymom,ijkd) = cv(cv_mixt_ymom,ijkc)
853 cv(cv_mixt_zmom,ijkd) = cv(cv_mixt_zmom,ijkc)
854 cv(cv_mixt_ener,ijkd) = cv(cv_mixt_ener,ijkc)
856 cv(cv_mixt_dens,ijkd) = 2._rfreal*cv(cv_mixt_dens,ijkc ) - &
857 cv(cv_mixt_dens,ijkc1)
858 cv(cv_mixt_xmom,ijkd) = 2._rfreal*cv(cv_mixt_xmom,ijkc ) - &
859 cv(cv_mixt_xmom,ijkc1)
860 cv(cv_mixt_ymom,ijkd) = 2._rfreal*cv(cv_mixt_ymom,ijkc ) - &
861 cv(cv_mixt_ymom,ijkc1)
862 cv(cv_mixt_zmom,ijkd) = 2._rfreal*cv(cv_mixt_zmom,ijkc ) - &
863 cv(cv_mixt_zmom,ijkc1)
864 cv(cv_mixt_ener,ijkd) = 2._rfreal*cv(cv_mixt_ener,ijkc ) - &
865 cv(cv_mixt_ener,ijkc1)
871 ELSE IF (flowmodel == flow_navst)
THEN
872 IF ((mrate > 0._rfreal) .OR. &
873 (bctype == bc_injection_ht))
THEN
874 cv(cv_mixt_dens,ijkd) = 2._rfreal*cv(cv_mixt_dens,ijkc ) - &
875 cv(cv_mixt_dens,ijkc1)
876 cv(cv_mixt_xmom,ijkd) = 2._rfreal*cv(cv_mixt_xmom,ijkc ) - &
877 cv(cv_mixt_xmom,ijkc1)
878 cv(cv_mixt_ymom,ijkd) = 2._rfreal*cv(cv_mixt_ymom,ijkc ) - &
879 cv(cv_mixt_ymom,ijkc1)
880 cv(cv_mixt_zmom,ijkd) = 2._rfreal*cv(cv_mixt_zmom,ijkc ) - &
881 cv(cv_mixt_zmom,ijkc1)
882 cv(cv_mixt_ener,ijkd) = 2._rfreal*cv(cv_mixt_ener,ijkc ) - &
883 cv(cv_mixt_ener,ijkc1)
885 ijkc = indijk(
i+(idum-1)*
idir,
j+(idum-1)*
jdir,
k+(idum-1)*
kdir,icoff,ijcoff)
886 cv(cv_mixt_dens,ijkd) = cv(cv_mixt_dens,ijkc)
887 cv(cv_mixt_xmom,ijkd) = -cv(cv_mixt_xmom,ijkc)
888 cv(cv_mixt_ymom,ijkd) = -cv(cv_mixt_ymom,ijkc)
889 cv(cv_mixt_zmom,ijkd) = -cv(cv_mixt_zmom,ijkc)
890 cv(cv_mixt_ener,ijkd) = cv(cv_mixt_ener,ijkc)
894 IF (gasmodel == gas_model_tcperf)
THEN
931 #include "Indexing.h"
934 TYPE(t_region
) :: region
937 INTEGER :: ilev, ipatch,
i,
j,
k, n1, n2
941 INTEGER :: icoff, ijcoff, inoff, ijnoff, noff, ijkc, ijkn, i2d
944 REAL(RFREAL) :: sgn, ds, sxn, syn, szn, mrate
945 REAL(RFREAL) :: sdens, coeff, power, pb
946 REAL(RFREAL),
POINTER :: dv(:,:), vals(:,:), sface(:,:)
953 global => region%global
956 'RFLO_ModBoundaryConditions.F90' )
960 DO ilev=1,region%nGridLevels
961 dv => region%levels(ilev)%mixt%dv
963 DO ipatch=1,region%nPatches
965 patch => region%levels(ilev)%patches(ipatch)
966 IF (ilev > 1) patchprev => region%levels(ilev-1)%patches(ipatch)
968 IF (
patch%bcType>=bc_injection .AND. &
969 patch%bcType<=bc_injection+bc_range)
THEN
971 lbound =
patch%lbound
973 vals =>
patch%mixt%vals
977 IF (
patch%mixt%distrib==bcdat_distrib)
THEN
990 IF (lbound==2 .OR. lbound==4 .OR. lbound==6)
THEN
999 IF (lbound==1 .OR. lbound==2) sface => region%levels(ilev)%grid%si
1000 IF (lbound==3 .OR. lbound==4) sface => region%levels(ilev)%grid%sj
1001 IF (lbound==5 .OR. lbound==6) sface => region%levels(ilev)%grid%sk
1005 IF (
patch%bcType==bc_injection_apn)
THEN
1009 ijkc = indijk(
i,
j,
k,icoff,ijcoff)
1011 IF (lbound==1 .OR. lbound==2)
THEN
1014 ELSE IF (lbound==3 .OR. lbound==4)
THEN
1017 ELSE IF (lbound==5 .OR. lbound==6)
THEN
1021 i2d = indij(n1,n2,noff)
1022 sdens = vals(bcdat_inject_sdens ,i2d)
1023 coeff = vals(bcdat_inject_acoeff,i2d)
1024 power = vals(bcdat_inject_npower,i2d)
1025 pb = dv(dv_mixt_pres,ijkc)
1026 vals(bcdat_inject_mfrate,i2d) = sdens*coeff*(pb**power)
1038 ijkc = indijk(
i,
j,
k,icoff,ijcoff)
1040 ds =
sqrt(sface(xcoord,ijkn)*sface(xcoord,ijkn)+ &
1041 sface(ycoord,ijkn)*sface(ycoord,ijkn)+ &
1042 sface(zcoord,ijkn)*sface(zcoord,ijkn))
1043 sxn = sgn*sface(xcoord,ijkn)/ds
1044 syn = sgn*sface(ycoord,ijkn)/ds
1045 szn = sgn*sface(zcoord,ijkn)/ds
1046 IF (lbound==1 .OR. lbound==2)
THEN
1049 ELSE IF (lbound==3 .OR. lbound==4)
THEN
1052 ELSE IF (lbound==5 .OR. lbound==6)
THEN
1056 i2d = indij(n1,n2,noff)
1057 mrate = vals(bcdat_inject_mfrate,i2d)
1058 vals(bcdat_inject_rfvfu,i2d) = -mrate*sxn
1059 vals(bcdat_inject_rfvfv,i2d) = -mrate*syn
1060 vals(bcdat_inject_rfvfw,i2d) = -mrate*szn
1068 vals(bcdat_inject_rfvfu,:) = 0._rfreal
1069 vals(bcdat_inject_rfvfv,:) = 0._rfreal
1070 vals(bcdat_inject_rfvfw,:) = 0._rfreal
1110 #include "Indexing.h"
1113 TYPE(t_region
) :: region
1117 INTEGER :: idum,
i,
j,
k, n1, n2
1121 INTEGER :: ilev, lbound, icoff, ijcoff, noff, distrib, bcopt
1122 INTEGER :: indcp, indmol, gasmodel, ijkc, ijkc1, ijkci, ijkcb, ijkd, i2d
1123 INTEGER ::
inode,
jnode, knode, inoff, ijnoff, ijkn(4)
1127 REAL(RFREAL) :: twall, rgas, gamma, pb, u,
v, w, temp, rho, rhoe
1128 REAL(RFREAL) :: dt, dxn(4), dyn(4), dzn(4), usurf, vsurf, wsurf
1129 REAL(RFREAL),
POINTER :: cv(:,:), dv(:,:), gv(:,:), vals(:,:)
1130 REAL(RFREAL),
POINTER :: xyz(:,:), xyzold(:,:)
1135 'RFLO_ModBoundaryConditions.F90' )
1139 ilev = region%currLevel
1140 lbound =
patch%lbound
1149 distrib =
patch%mixt%distrib
1150 bcopt =
patch%mixt%switches(bcswi_noslip_adiabat)
1151 indcp = region%levels(ilev)%mixt%indCp
1152 indmol = region%levels(ilev)%mixt%indMol
1153 gasmodel = region%mixtInput%gasModel
1154 movegrid = region%mixtInput%moveGrid
1155 dt = region%global%dtMin
1157 cv => region%levels(ilev)%mixt%cv
1158 dv => region%levels(ilev)%mixt%dv
1159 gv => region%levels(ilev)%mixt%gv
1160 xyz => region%levels(ilev)%grid%xyz
1161 IF (movegrid) xyzold => region%levels(ilev)%gridOld%xyz
1162 vals =>
patch%mixt%vals
1169 IF (lbound==2 .OR. lbound==4 .OR. lbound==6)
THEN
1177 DO idum=1,region%nDumCells
1182 ijkci = indijk(
i+(idum-1)*
idir,
j+(idum-1)*
jdir,
k+(idum-1)*
kdir,icoff,ijcoff)
1188 IF (lbound==1 .OR. lbound==2)
THEN
1192 ELSE IF (lbound==3 .OR. lbound==4)
THEN
1196 ELSE IF (lbound==5 .OR. lbound==6)
THEN
1201 dxn(1) = xyz(xcoord,ijkn(1)) - xyzold(xcoord,ijkn(1))
1202 dyn(1) = xyz(ycoord,ijkn(1)) - xyzold(ycoord,ijkn(1))
1203 dzn(1) = xyz(zcoord,ijkn(1)) - xyzold(zcoord,ijkn(1))
1204 dxn(2) = xyz(xcoord,ijkn(2)) - xyzold(xcoord,ijkn(2))
1205 dyn(2) = xyz(ycoord,ijkn(2)) - xyzold(ycoord,ijkn(2))
1206 dzn(2) = xyz(zcoord,ijkn(2)) - xyzold(zcoord,ijkn(2))
1207 dxn(3) = xyz(xcoord,ijkn(3)) - xyzold(xcoord,ijkn(3))
1208 dyn(3) = xyz(ycoord,ijkn(3)) - xyzold(ycoord,ijkn(3))
1209 dzn(3) = xyz(zcoord,ijkn(3)) - xyzold(zcoord,ijkn(3))
1210 dxn(4) = xyz(xcoord,ijkn(4)) - xyzold(xcoord,ijkn(4))
1211 dyn(4) = xyz(ycoord,ijkn(4)) - xyzold(ycoord,ijkn(4))
1212 dzn(4) = xyz(zcoord,ijkn(4)) - xyzold(zcoord,ijkn(4))
1213 usurf = 0.25_rfreal*(dxn(1)+dxn(2)+dxn(3)+dxn(4))/dt
1214 vsurf = 0.25_rfreal*(dyn(1)+dyn(2)+dyn(3)+dyn(4))/dt
1215 wsurf = 0.25_rfreal*(dzn(1)+dzn(2)+dzn(3)+dzn(4))/dt
1224 IF (bcopt == bcopt_adiabat)
THEN
1225 cv(cv_mixt_dens,ijkd) = cv(cv_mixt_dens,ijkci)
1226 cv(cv_mixt_xmom,ijkd) = 2._rfreal*usurf - cv(cv_mixt_xmom,ijkci)
1227 cv(cv_mixt_ymom,ijkd) = 2._rfreal*vsurf - cv(cv_mixt_ymom,ijkci)
1228 cv(cv_mixt_zmom,ijkd) = 2._rfreal*wsurf - cv(cv_mixt_zmom,ijkci)
1229 cv(cv_mixt_ener,ijkd) = cv(cv_mixt_ener,ijkci)
1234 ijkcb = indijk(
i,
j,
k,icoff,ijcoff)
1235 ijkc = indijk(
i-(idum-1)*
idir,
j-(idum-1)*
jdir,
k-(idum-1)*
kdir,icoff,ijcoff)
1236 ijkc1 = indijk(
i-(idum-2)*
idir,
j-(idum-2)*
jdir,
k-(idum-2)*
kdir,icoff,ijcoff)
1238 IF (lbound==1 .OR. lbound==2)
THEN
1241 ELSE IF (lbound==3 .OR. lbound==4)
THEN
1244 ELSE IF (lbound==5 .OR. lbound==6)
THEN
1248 i2d = distrib * indij(n1,n2,noff)
1250 twall = vals(bcdat_noslip_twall,i2d)
1251 pb = dv(dv_mixt_pres,ijkcb)
1252 u = cv(cv_mixt_xmom,ijkci)/cv(cv_mixt_dens,ijkci)
1253 v = cv(cv_mixt_ymom,ijkci)/cv(cv_mixt_dens,ijkci)
1254 w = cv(cv_mixt_zmom,ijkci)/cv(cv_mixt_dens,ijkci)
1256 temp = 2._rfreal*twall - dv(dv_mixt_temp,ijkc)
1258 temp = 2._rfreal*dv(dv_mixt_temp,ijkc) - dv(dv_mixt_temp,ijkc1)
1261 IF (gasmodel == gas_model_tcperf)
THEN
1267 CALL
errorstop( region%global,err_unknown_bc,&
1270 cv(cv_mixt_dens,ijkd) = rho
1271 cv(cv_mixt_xmom,ijkd) = 2._rfreal*usurf - u*rho
1272 cv(cv_mixt_ymom,ijkd) = 2._rfreal*vsurf -
v*rho
1273 cv(cv_mixt_zmom,ijkd) = 2._rfreal*wsurf - w*rho
1274 cv(cv_mixt_ener,ijkd) = rhoe
1277 IF (gasmodel == gas_model_tcperf)
THEN
1316 #include "Indexing.h"
1319 TYPE(t_region
) :: region
1323 INTEGER :: idum,
i,
j,
k, n1, n2
1327 INTEGER :: ilev, lbound, icoff, ijcoff, inoff, ijnoff, noff, distrib, bcopt
1328 INTEGER :: indcp, indmol, gasmodel, ijkc, ijkc1, ijkd, ijkn, i2d
1332 REAL(RFREAL) :: sgn, ds, sxn, syn, szn, pout
1333 REAL(RFREAL) :: ud, vd, wd, tempd, rold, rrold, uold, vold, wold, &
1334 rdold, rrdold, udold, vdold, wdold, edold, rlen, dtmin, kappa
1335 REAL(RFREAL),
POINTER :: cv(:,:), dv(:,:), gv(:,:), vals(:,:), sface(:,:)
1336 REAL(RFREAL),
POINTER :: cvold(:,:)
1341 'RFLO_ModBoundaryConditions.F90' )
1345 ilev = region%currLevel
1346 lbound =
patch%lbound
1355 distrib =
patch%mixt%distrib
1356 bcopt =
patch%mixt%switches(bcswi_outflow_type)
1357 bcmodel =
patch%mixt%switches(bcswi_outflow_model)
1358 indcp = region%levels(ilev)%mixt%indCp
1359 indmol = region%levels(ilev)%mixt%indMol
1360 gasmodel = region%mixtInput%gasModel
1362 cv => region%levels(ilev)%mixt%cv
1363 cvold => region%levels(ilev)%mixt%cvOld
1364 dv => region%levels(ilev)%mixt%dv
1365 gv => region%levels(ilev)%mixt%gv
1366 vals =>
patch%mixt%vals
1374 IF (lbound==2 .OR. lbound==4 .OR. lbound==6)
THEN
1383 IF (lbound==1 .OR. lbound==2) sface => region%levels(ilev)%grid%si
1384 IF (lbound==3 .OR. lbound==4) sface => region%levels(ilev)%grid%sj
1385 IF (lbound==5 .OR. lbound==6) sface => region%levels(ilev)%grid%sk
1389 DO idum=1,region%nDumCells
1396 ijkc = indijk(
i,
j,
k,icoff,ijcoff)
1398 ds =
sqrt(sface(xcoord,ijkn)*sface(xcoord,ijkn)+ &
1399 sface(ycoord,ijkn)*sface(ycoord,ijkn)+ &
1400 sface(zcoord,ijkn)*sface(zcoord,ijkn))
1401 sxn = sgn*sface(xcoord,ijkn)/ds
1402 syn = sgn*sface(ycoord,ijkn)/ds
1403 szn = sgn*sface(zcoord,ijkn)/ds
1405 IF (lbound==1 .OR. lbound==2)
THEN
1408 ELSE IF (lbound==3 .OR. lbound==4)
THEN
1411 ELSE IF (lbound==5 .OR. lbound==6)
THEN
1415 i2d = distrib * indij(n1,n2,noff)
1417 IF (gasmodel == gas_model_tcperf)
THEN
1418 IF (bcopt == bcopt_supersonic)
THEN
1421 pout = vals(bcdat_outflow_press,i2d)
1424 IF (bcmodel == bcopt_default)
THEN
1426 gv(gv_mixt_cp ,ijkc*indcp),gv(gv_mixt_mol ,ijkc*indmol), &
1427 cv(cv_mixt_dens,ijkc) ,cv(cv_mixt_xmom,ijkc) , &
1428 cv(cv_mixt_ymom,ijkc) ,cv(cv_mixt_zmom,ijkc) , &
1429 cv(cv_mixt_ener,ijkc) ,dv(dv_mixt_pres,ijkc) , &
1430 cv(cv_mixt_dens,ijkd) ,cv(cv_mixt_xmom,ijkd) , &
1431 cv(cv_mixt_ymom,ijkd) ,cv(cv_mixt_zmom,ijkd) , &
1432 cv(cv_mixt_ener,ijkd) )
1437 rold = cvold(cv_mixt_dens,ijkc )
1438 rrold = 1._rfreal/rold
1439 uold = cvold(cv_mixt_xmom,ijkc )*rrold
1440 vold = cvold(cv_mixt_ymom,ijkc )*rrold
1441 wold = cvold(cv_mixt_zmom,ijkc )*rrold
1443 rdold = cvold(cv_mixt_dens,ijkd )
1444 rrdold= 1._rfreal/rdold
1445 udold = cvold(cv_mixt_xmom,ijkd )*rrdold
1446 vdold = cvold(cv_mixt_ymom,ijkd )*rrdold
1447 wdold = cvold(cv_mixt_zmom,ijkd )*rrdold
1448 edold = cvold(cv_mixt_ener,ijkd )*rrdold
1449 rlen = region%global%refLength
1450 dtmin = region%global%dtMin
1451 IF (bcopt == bcopt_supersonic)
THEN
1454 kappa = vals(bcdat_outflow_nrcoef,i2d)
1457 ud = 2._rfreal*dv(dv_mixt_uvel,ijkc ) - dv(dv_mixt_uvel,ijkc1)
1458 vd = 2._rfreal*dv(dv_mixt_vvel,ijkc ) - dv(dv_mixt_vvel,ijkc1)
1459 wd = 2._rfreal*dv(dv_mixt_wvel,ijkc ) - dv(dv_mixt_wvel,ijkc1)
1460 tempd = 2._rfreal*dv(dv_mixt_temp,ijkc ) - dv(dv_mixt_temp,ijkc1)
1463 gv(gv_mixt_cp ,ijkc*indcp),gv(gv_mixt_mol ,ijkc*indmol), &
1464 cv(cv_mixt_dens,ijkc) ,cv(cv_mixt_xmom,ijkc) , &
1465 cv(cv_mixt_ymom,ijkc) ,cv(cv_mixt_zmom,ijkc) , &
1466 cv(cv_mixt_ener,ijkc) ,dv(dv_mixt_pres,ijkc) , &
1467 ud, vd, wd, tempd, uold, vold, wold , &
1468 udold, vdold, wdold, rdold, edold, rlen, dtmin, kappa , &
1469 cv(cv_mixt_dens,ijkd) ,cv(cv_mixt_xmom,ijkd) , &
1470 cv(cv_mixt_ymom,ijkd) ,cv(cv_mixt_zmom,ijkd) , &
1471 cv(cv_mixt_ener,ijkd) )
1474 CALL
errorstop( region%global,err_unknown_bc,&
1479 ijkc = indijk(
i-(idum-1)*
idir,
j-(idum-1)*
jdir,
k-(idum-1)*
kdir,icoff,ijcoff)
1480 ijkc1 = indijk(
i-(idum-2)*
idir,
j-(idum-2)*
jdir,
k-(idum-2)*
kdir,icoff,ijcoff)
1482 cv(cv_mixt_dens,ijkd) = 2._rfreal*cv(cv_mixt_dens,ijkc ) - &
1483 cv(cv_mixt_dens,ijkc1)
1484 cv(cv_mixt_xmom,ijkd) = 2._rfreal*cv(cv_mixt_xmom,ijkc ) - &
1485 cv(cv_mixt_xmom,ijkc1)
1486 cv(cv_mixt_ymom,ijkd) = 2._rfreal*cv(cv_mixt_ymom,ijkc ) - &
1487 cv(cv_mixt_ymom,ijkc1)
1488 cv(cv_mixt_zmom,ijkd) = 2._rfreal*cv(cv_mixt_zmom,ijkc ) - &
1489 cv(cv_mixt_zmom,ijkc1)
1490 cv(cv_mixt_ener,ijkd) = 2._rfreal*cv(cv_mixt_ener,ijkc ) - &
1491 cv(cv_mixt_ener,ijkc1)
1494 IF (gasmodel == gas_model_tcperf)
THEN
1535 TYPE(t_region
) :: region, regionsrc
1546 'RFLO_ModBoundaryConditions.F90' )
1577 #include "Indexing.h"
1580 TYPE(t_region
) :: region
1584 INTEGER :: idum,
i,
j,
k
1588 INTEGER :: ilev, icoff, ijcoff, ijkc, ijkc1, ijkd
1589 INTEGER :: dumextrapol, gasmodel
1591 REAL(RFREAL) :: rhodum, rhoedum, maxchange
1592 REAL(RFREAL) :: uvel, vvel, wvel
1593 REAL(RFREAL),
POINTER :: cv(:,:)
1598 'RFLO_ModBoundaryConditions.F90' )
1602 ilev = region%currLevel
1609 dumextrapol =
patch%mixt%switches(bcswi_slipw_extrap)
1610 maxchange =
patch%mixt%maxChange
1611 gasmodel = region%mixtInput%gasModel
1613 cv => region%levels(ilev)%mixt%cv
1617 DO idum=1,region%nDumCells
1621 ijkc = indijk(
i-(idum-1)*
idir,
j-(idum-1)*
jdir,
k-(idum-1)*
kdir,icoff,ijcoff)
1622 ijkc1 = indijk(
i-(idum-2)*
idir,
j-(idum-2)*
jdir,
k-(idum-2)*
kdir,icoff,ijcoff)
1625 rhodum = 2._rfreal*cv(cv_mixt_dens,ijkc) - cv(cv_mixt_dens,ijkc1)
1626 rhoedum = 2._rfreal*cv(cv_mixt_ener,ijkc) - cv(cv_mixt_ener,ijkc1)
1627 IF (rhodum<=0._rfreal .OR. rhoedum<=0._rfreal .OR. &
1628 abs(cv(cv_mixt_dens,ijkd)-rhodum)> &
1629 maxchange*cv(cv_mixt_dens,ijkd) .OR. &
1630 abs(cv(cv_mixt_ener,ijkd)-rhoedum)> &
1631 maxchange*cv(cv_mixt_ener,ijkd) .OR. &
1632 dumextrapol==extrapol_const)
THEN
1633 cv(cv_mixt_dens,ijkd) = cv(cv_mixt_dens,ijkc)
1634 cv(cv_mixt_xmom,ijkd) = cv(cv_mixt_xmom,ijkc)
1635 cv(cv_mixt_ymom,ijkd) = cv(cv_mixt_ymom,ijkc)
1636 cv(cv_mixt_zmom,ijkd) = cv(cv_mixt_zmom,ijkc)
1637 cv(cv_mixt_ener,ijkd) = cv(cv_mixt_ener,ijkc)
1639 cv(cv_mixt_dens,ijkd) = 2._rfreal*cv(cv_mixt_dens,ijkc ) - &
1640 cv(cv_mixt_dens,ijkc1)
1641 cv(cv_mixt_xmom,ijkd) = 2._rfreal*cv(cv_mixt_xmom,ijkc ) - &
1642 cv(cv_mixt_xmom,ijkc1)
1643 cv(cv_mixt_ymom,ijkd) = 2._rfreal*cv(cv_mixt_ymom,ijkc ) - &
1644 cv(cv_mixt_ymom,ijkc1)
1645 cv(cv_mixt_zmom,ijkd) = 2._rfreal*cv(cv_mixt_zmom,ijkc ) - &
1646 cv(cv_mixt_zmom,ijkc1)
1647 cv(cv_mixt_ener,ijkd) = 2._rfreal*cv(cv_mixt_ener,ijkc ) - &
1648 cv(cv_mixt_ener,ijkc1)
1649 IF (
patch%mixt%setMotion .AND. idum==1)
THEN
1650 uvel = 2._rfreal*
patch%mixt%bndVel(xcoord) - &
1651 cv(cv_mixt_xmom,ijkc)/cv(cv_mixt_dens,ijkc)
1652 vvel = 2._rfreal*
patch%mixt%bndVel(ycoord) - &
1653 cv(cv_mixt_ymom,ijkc)/cv(cv_mixt_dens,ijkc)
1654 wvel = 2._rfreal*
patch%mixt%bndVel(zcoord) - &
1655 cv(cv_mixt_zmom,ijkc)/cv(cv_mixt_dens,ijkc)
1656 cv(cv_mixt_xmom,ijkd) = uvel*cv(cv_mixt_dens,ijkd )
1657 cv(cv_mixt_ymom,ijkd) = vvel*cv(cv_mixt_dens,ijkd )
1658 cv(cv_mixt_zmom,ijkd) = wvel*cv(cv_mixt_dens,ijkd )
1662 IF (gasmodel == gas_model_tcperf)
THEN
1704 #include "Indexing.h"
1707 TYPE(t_region
) :: region
1711 INTEGER :: idum,
i,
j,
k
1715 INTEGER :: ilev, lbound, icoff, ijcoff, ijkc, ijkd
1718 REAL(RFREAL) :: sgn(3)
1719 REAL(RFREAL),
POINTER :: cv(:,:)
1724 'RFLO_ModBoundaryConditions.F90' )
1728 ilev = region%currLevel
1729 lbound =
patch%lbound
1736 gasmodel = region%mixtInput%gasModel
1738 cv => region%levels(ilev)%mixt%cv
1742 IF (lbound==1 .OR. lbound==2)
THEN
1746 ELSE IF (lbound==3 .OR. lbound==4)
THEN
1750 ELSE IF (lbound==5 .OR. lbound==6)
THEN
1758 DO idum=1,region%nDumCells
1762 ijkc = indijk(
i+(idum-1)*
idir,
j+(idum-1)*
jdir,
k+(idum-1)*
kdir,icoff,ijcoff)
1765 cv(cv_mixt_dens,ijkd) = cv(cv_mixt_dens,ijkc)
1766 cv(cv_mixt_xmom,ijkd) = sgn(1)*cv(cv_mixt_xmom,ijkc)
1767 cv(cv_mixt_ymom,ijkd) = sgn(2)*cv(cv_mixt_ymom,ijkc)
1768 cv(cv_mixt_zmom,ijkd) = sgn(3)*cv(cv_mixt_zmom,ijkc)
1769 cv(cv_mixt_ener,ijkd) = cv(cv_mixt_ener,ijkc)
1771 IF (gasmodel == gas_model_tcperf)
THEN
1812 TYPE(t_region
),
POINTER :: regions(:)
1820 INTEGER :: ilev, npatches, bctype, iregsrc, ipatchsrc
1826 CALL
registerfunction( regions(ireg)%global,
'RFLO_BoundaryConditionsRecv', &
1827 'RFLO_ModBoundaryConditions.F90' )
1831 ilev = regions(ireg)%currLevel
1832 npatches = regions(ireg)%nPatches
1836 DO ipatch=1,npatches
1838 patch => regions(ireg)%levels(ilev)%patches(ipatch)
1840 bctype =
patch%bcType
1841 iregsrc =
patch%srcRegion
1842 ipatchsrc =
patch%srcPatch
1846 IF ((bctype>=bc_regionconf .AND. bctype<=bc_regionconf+bc_range) .OR. &
1847 (bctype>=bc_regionint .AND. bctype<=bc_regionint +bc_range) .OR. &
1848 (bctype>=bc_regnonconf .AND. bctype<=bc_regnonconf+bc_range) .OR. &
1849 (bctype>=bc_tra_peri .AND. bctype<=bc_tra_peri +bc_range) .OR. &
1850 (bctype>=bc_rot_peri .AND. bctype<=bc_rot_peri +bc_range))
THEN
1851 IF (regions(iregsrc)%procid /= regions(ireg)%global%myProcid)
THEN
1852 patchsrc => regions(iregsrc)%levels(ilev)%patches(ipatchsrc)
1865 DO ipatch=1,npatches
1866 patch => regions(ireg)%levels(ilev)%patches(ipatch)
1867 bctype =
patch%bcType
1868 IF ((bctype>=bc_noslipwall .AND. bctype<=bc_noslipwall+bc_range) .OR. &
1869 (bctype>=bc_injection .AND. bctype<=bc_injection +bc_range .AND. &
1870 regions(ireg)%mixtInput%flowModel==flow_navst) .OR. &
1871 (bctype>=bc_symmetry .AND. bctype<=bc_symmetry +bc_range))
THEN
1908 TYPE(t_region
),
POINTER :: regions(:)
1916 INTEGER :: ilev, npatches, bctype, iregsrc, ipatchsrc
1923 global => regions(ireg)%global
1926 'RFLO_ModBoundaryConditions.F90' )
1930 ilev = regions(ireg)%currLevel
1931 npatches = regions(ireg)%nPatches
1939 DO ipatch=1,npatches
1941 patch => regions(ireg)%levels(ilev)%patches(ipatch)
1943 bctype =
patch%bcType
1944 iregsrc =
patch%srcRegion
1945 ipatchsrc =
patch%srcPatch
1949 IF (bctype>=bc_regionconf .AND. bctype<=bc_regionconf+bc_range)
THEN
1950 patchsrc => regions(iregsrc)%levels(ilev)%patches(ipatchsrc)
1952 IF (regions(iregsrc)%procid /= global%myProcid)
THEN
1958 ELSE IF (bctype>=bc_regionint .AND. bctype<=bc_regionint+bc_range)
THEN
1959 patchsrc => regions(iregsrc)%levels(ilev)%patches(ipatchsrc)
1961 IF (regions(iregsrc)%procid /= global%myProcid)
THEN
1967 ELSE IF (bctype>=bc_regnonconf .AND. bctype<=bc_regnonconf+bc_range)
THEN
1968 patchsrc => regions(iregsrc)%levels(ilev)%patches(ipatchsrc)
1970 IF (regions(iregsrc)%procid /= global%myProcid)
THEN
1976 ELSE IF (bctype>=bc_tra_peri .AND. bctype<=bc_tra_peri+bc_range)
THEN
1977 patchsrc => regions(iregsrc)%levels(ilev)%patches(ipatchsrc)
1979 IF (regions(iregsrc)%procid /= global%myProcid)
THEN
1985 ELSE IF (bctype>=bc_rot_peri .AND. bctype<=bc_rot_peri+bc_range)
THEN
1986 patchsrc => regions(iregsrc)%levels(ilev)%patches(ipatchsrc)
2025 TYPE(t_region
),
POINTER :: regions(:)
2033 INTEGER :: ilev, npatches, bctype, iregsrc, ipatchsrc
2040 global => regions(ireg)%global
2043 'RFLO_ModBoundaryConditions.F90' )
2047 ilev = regions(ireg)%currLevel
2048 npatches = regions(ireg)%nPatches
2052 DO ipatch=1,npatches
2054 patch => regions(ireg)%levels(ilev)%patches(ipatch)
2056 bctype =
patch%bcType
2057 iregsrc =
patch%srcRegion
2058 ipatchsrc =
patch%srcPatch
2062 IF (bctype>=bc_inflow .AND. bctype<=bc_inflow+bc_range)
THEN
2067 ELSE IF (bctype>=bc_outflow .AND. bctype<=bc_outflow+bc_range)
THEN
2072 ELSE IF (bctype>=bc_regionconf .AND. bctype<=bc_regionconf+bc_range)
THEN
2073 patchsrc => regions(iregsrc)%levels(ilev)%patches(ipatchsrc)
2075 IF (regions(iregsrc)%procid == global%myProcid)
THEN
2082 ELSE IF (bctype>=bc_regionint .AND. bctype<=bc_regionint+bc_range)
THEN
2083 patchsrc => regions(iregsrc)%levels(ilev)%patches(ipatchsrc)
2085 IF (regions(iregsrc)%procid == global%myProcid)
THEN
2092 ELSE IF (bctype>=bc_regnonconf .AND. bctype<=bc_regnonconf+bc_range)
THEN
2093 patchsrc => regions(iregsrc)%levels(ilev)%patches(ipatchsrc)
2095 IF (regions(iregsrc)%procid == global%myProcid)
THEN
2102 ELSE IF (bctype>=bc_slipwall .AND. bctype<=bc_slipwall+bc_range)
THEN
2107 ELSE IF (bctype>=bc_noslipwall .AND. bctype<=bc_noslipwall+bc_range)
THEN
2112 ELSE IF (bctype>=bc_farfield .AND. bctype<=bc_farfield+bc_range)
THEN
2117 ELSE IF (bctype>=bc_injection .AND. bctype<=bc_injection+bc_range)
THEN
2118 IF (bctype==bc_injection_apn)
THEN
2119 IF (
patch%bcCoupled==bc_external)
THEN
2120 CALL
errorstop( global,err_external_funct,&
2122 'BC_INJECT_APN used in .bc with interaction flag in .top file' )
2131 ELSE IF (bctype>=bc_symmetry .AND. bctype<=bc_symmetry+bc_range)
THEN
2136 ELSE IF (bctype>=bc_tra_peri .AND. bctype<=bc_tra_peri+bc_range)
THEN
2137 patchsrc => regions(iregsrc)%levels(ilev)%patches(ipatchsrc)
2139 IF (regions(iregsrc)%procid == global%myProcid)
THEN
2146 ELSE IF (bctype>=bc_rot_peri .AND. bctype<=bc_rot_peri+bc_range)
THEN
2147 patchsrc => regions(iregsrc)%levels(ilev)%patches(ipatchsrc)
2203 rho,rhou,rhov,rhow,rhoe,press, &
2204 ud,vd,wd,tempd,uold,vold,wold, udold,vdold, &
2205 wdold,rdold,edold, reflength, dtmin, kappa, &
2206 rhob,rhoub,rhovb,rhowb,rhoeb )
2218 REAL(RFREAL) :: pout
2219 REAL(RFREAL) :: rho, rhou, rhov, rhow, rhoe, press
2220 REAL(RFREAL) :: ud, vd, wd, tempd, uold, vold, wold
2221 REAL(RFREAL) :: udold, vdold, wdold, rdold, edold, reflength, dtmin, kappa
2222 REAL(RFREAL) :: sxn, syn, szn, csound, cpgas, mol
2223 REAL(RFREAL) :: rhob, rhoub, rhovb, rhowb, rhoeb
2226 REAL(RFREAL) :: rgas, gamma, gam1, u,
v, w, mach, rhoc, deltp, &
2228 REAL(RFREAL) :: pdold, qdold2, qnold, qn, pb, beta
2235 gam1 = gamma - 1.0_rfreal
2241 mach =
sqrt(u*u+
v*
v+w*w)/csound
2245 IF (mach < 1.0_rfreal .AND. &
2246 (bcopt == bcopt_subsonic .OR. bcopt == bcopt_mixed))
THEN
2248 beta = kappa*csound*(1._rfreal - mach*mach)/reflength
2250 qdold2= udold*udold + vdold*vdold + wdold*wdold
2252 deltp = pdold - pout
2253 qn = u*sxn +
v*syn + w*szn
2254 qnold = uold*sxn + vold*syn + wold*szn
2260 pb = press + rhoc*(qn - qnold) - dtmin*beta*(press - pout)
2266 rhob = pb/(rgas*tempd)
2271 vnd = ub*sxn + vb*syn + wb*szn
2272 IF ( vnd < 0.0_rfreal )
THEN
2273 ub = 0.010_rfreal*
sign(1.0_rfreal,u)*
min(abs(ub),abs(u))
2274 vb = 0.010_rfreal*
sign(1.0_rfreal,
v)*
min(abs(vb),abs(
v))
2275 wb = 0.010_rfreal*
sign(1.0_rfreal,w)*
min(abs(wb),abs(w))
2330 sxn,syn,szn,cpgas,mol, &
2331 rho,rhou,rhov,rhow,rhoe,press, &
2332 rhob,rhoub,rhovb,rhowb,rhoeb )
2340 INTEGER :: model, bcopt
2341 REAL(RFREAL) :: uinfl, vinfl, winfl, tinfl, pinfl
2342 REAL(RFREAL) :: sxn, syn, szn, cpgas, mol
2343 REAL(RFREAL) :: rho, rhou, rhov, rhow, rhoe, press
2344 REAL(RFREAL) :: rhob, rhoub, rhovb, rhowb, rhoeb
2348 REAL(RFREAL) :: rgas, gamma, mach
2349 REAL(RFREAL) :: re, ue, ve, we, pe, qn, crho0, csound
2350 REAL(RFREAL) :: ub, vb, wb, tb, pb
2372 qn = sxn*ub + syn*vb + szn*wb
2375 IF (qn > 0 .AND. model==bcopt_steady)
THEN
2376 WRITE(stderr,*)
'BC_INFLOW_VELTEMP: outflow detected at inflow plane'
2378 CALL mpi_abort( ierror )
2383 IF (bcopt == bcopt_mixed)
THEN
2387 IF (mach < 1._rfreal)
THEN
2391 pb = pe-crho0*(sxn*(ub-ue)+syn*(vb-ve)+szn*(wb-we))
2400 ELSEIF (bcopt == bcopt_subsonic)
THEN
2404 pb = pe-crho0*(sxn*(ub-ue)+syn*(vb-ve)+szn*(wb-we))
2406 ELSEIF (bcopt == bcopt_supersonic)
THEN
2454 sxn,syn,szn,cpgas,mol, &
2455 rho,rhou,rhov,rhow,rhoe,press, &
2456 rhob,rhoub,rhovb,rhowb,rhoeb )
2464 INTEGER :: model, bcopt
2465 REAL(RFREAL) :: uinfl, vinfl, winfl, tinfl, pinfl
2466 REAL(RFREAL) :: sxn, syn, szn, cpgas, mol
2467 REAL(RFREAL) :: rho, rhou, rhov, rhow, rhoe, press
2468 REAL(RFREAL) :: rhob, rhoub, rhovb, rhowb, rhoeb
2472 REAL(RFREAL) :: rgas, gamma, mach
2473 REAL(RFREAL) :: re, ue, ve, we, pe, te, qn, crho0, csound
2474 REAL(RFREAL) :: ub, vb, wb, tb, pb, ta
2497 qn = sxn*ub + syn*vb + szn*wb
2501 IF (qn > 0 .AND. model==bcopt_steady)
THEN
2502 WRITE(stderr,*)
'BC_INFLOW_VELPRESS: outflow detected at inflow plane'
2504 CALL mpi_abort( ierror )
2509 IF (bcopt == bcopt_mixed)
THEN
2513 IF (mach < 1._rfreal)
THEN
2517 tb = te-csound/rgas*(sxn*(ub-ue)+syn*(vb-ve)+szn*(wb-we))
2526 ELSEIF (bcopt == bcopt_subsonic)
THEN
2530 tb = te-csound/rgas*(sxn*(ub-ue)+syn*(vb-ve)+szn*(wb-we))
2532 ELSEIF (bcopt == bcopt_supersonic)
THEN
2571 uvel,vvel,wvel,temp,pres, &
2572 muvel,mvvel,mwvel,mtemp,mpres )
2576 INTEGER :: bcoptmodel
2577 REAL(RFREAL) :: ufluc, vfluc, wfluc, tfluc, pfluc
2578 REAL(RFREAL) :: uvel, vvel, wvel, temp, pres
2579 REAL(RFREAL) :: muvel, mvvel, mwvel, mtemp, mpres
2587 IF (bcoptmodel==bcopt_unsteady)
THEN
**********************************************************************Rocstar Simulation Suite Illinois Rocstar LLC All rights reserved ****Illinois Rocstar LLC IL **www illinoisrocstar com **sales illinoisrocstar com WITHOUT WARRANTY OF ANY **EXPRESS OR INCLUDING BUT NOT LIMITED TO THE WARRANTIES **OF FITNESS FOR A PARTICULAR PURPOSE AND **NONINFRINGEMENT IN NO EVENT SHALL THE CONTRIBUTORS OR **COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES OR OTHER WHETHER IN AN ACTION OF TORT OR **Arising OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE **USE OR OTHER DEALINGS WITH THE SOFTWARE **********************************************************************INTERFACE SUBROUTINE ibeg
subroutine rflo_bcondinjectionapn(region, patch)
real(rfreal) function mixtperf_p_deogvm2(D, Eo, G, Vm2)
subroutine rflo_getpatchdirection(patch, idir, jdir, kdir)
real(rfreal) function mixtperf_r_m(M)
subroutine bcondinjectionperf(distrib, minj, tinj, rhoVrel, sxn, syn, szn, cpgas, mm, p, rhob, rhoub, rhovb, rhowb, rhoeb, pb, uinj, vinj, winj)
static SURF_BEGIN_NAMESPACE double sign(double x)
**********************************************************************Rocstar Simulation Suite Illinois Rocstar LLC All rights reserved ****Illinois Rocstar LLC IL **www illinoisrocstar com **sales illinoisrocstar com WITHOUT WARRANTY OF ANY **EXPRESS OR INCLUDING BUT NOT LIMITED TO THE WARRANTIES **OF FITNESS FOR A PARTICULAR PURPOSE AND **NONINFRINGEMENT IN NO EVENT SHALL THE CONTRIBUTORS OR **COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES OR OTHER WHETHER IN AN ACTION OF TORT OR **Arising OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE **USE OR OTHER DEALINGS WITH THE SOFTWARE **********************************************************************INTERFACE SUBROUTINE inode
subroutine bcondfarfieldperf(machInf, alphaInf, betaInf, pInf, tInf, sxn, syn, szn, cpgas, mol, rho, rhou, rhov, rhow, rhoe, press, rhob, rhoub, rhovb, rhowb, rhoeb, pb)
subroutine rflo_exchangedummyireg(region, regionSrc, patch, patchSrc)
subroutine, public rflo_bcondsymmetry(region, patch)
subroutine rflo_setcorneredgecells(region)
subroutine rflo_sendcorneredgecells(regions, iReg)
subroutine, public rflo_bcondslipwall(region, patch)
real(rfreal) function mixtperf_c_dgp(D, G, P)
subroutine, public rflo_bcondinjection(region, patch)
subroutine registerfunction(global, funName, fileName)
subroutine rflo_getpatchindices(region, patch, iLev, ibeg, iend, jbeg, jend, kbeg, kend)
subroutine rflo_exchangedummyconf(region, regionSrc, patch, patchSrc)
real(rfreal) function mixtperf_d_prt(P, R, T)
subroutine, public rflo_bcondrotatperiod(region, regionSrc, patch, patchSrc)
*********************************************************************Illinois Open Source License ****University of Illinois NCSA **Open Source License University of Illinois All rights reserved ****Developed free of to any person **obtaining a copy of this software and associated documentation to deal with the Software without including without limitation the rights to and or **sell copies of the and to permit persons to whom the **Software is furnished to do subject to the following this list of conditions and the following disclaimers ****Redistributions in binary form must reproduce the above **copyright this list of conditions and the following **disclaimers in the documentation and or other materials **provided with the distribution ****Neither the names of the Center for Simulation of Advanced the University of nor the names of its **contributors may be used to endorse or promote products derived **from this Software without specific prior written permission ****THE SOFTWARE IS PROVIDED AS WITHOUT WARRANTY OF ANY **EXPRESS OR INCLUDING BUT NOT LIMITED TO THE WARRANTIES **OF FITNESS FOR A PARTICULAR PURPOSE AND **NONINFRINGEMENT IN NO EVENT SHALL THE CONTRIBUTORS OR **COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES OR OTHER WHETHER IN AN ACTION OF TORT OR **ARISING OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE **USE OR OTHER DEALINGS WITH THE SOFTWARE v
subroutine rflo_bcondinflowfluc(bcOptModel, ufluc, vfluc, wfluc, Tfluc, pfluc, uvel, vvel, wvel, temp, pres, muvel, mvvel, mwvel, mtemp, mpres)
subroutine, public rflo_bcondinflow(region, patch)
subroutine rflo_exchangecorneredgecells(regions, iReg)
subroutine rflo_getnodeoffset(region, iLev, iNodeOffset, ijNodeOffset)
subroutine rflo_receivecorneredgecells(regions, iReg)
**********************************************************************Rocstar Simulation Suite Illinois Rocstar LLC All rights reserved ****Illinois Rocstar LLC IL **www illinoisrocstar com **sales illinoisrocstar com WITHOUT WARRANTY OF ANY **EXPRESS OR INCLUDING BUT NOT LIMITED TO THE WARRANTIES **OF FITNESS FOR A PARTICULAR PURPOSE AND **NONINFRINGEMENT IN NO EVENT SHALL THE CONTRIBUTORS OR **COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES OR OTHER WHETHER IN AN ACTION OF TORT OR **Arising OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE **USE OR OTHER DEALINGS WITH THE SOFTWARE **********************************************************************INTERFACE SUBROUTINE jdir
subroutine rflo_receivedummyvals(region, regionSrc, patch, patchSrc)
subroutine rflo_senddummyint(region, regionSrc, patch)
subroutine bcondoutflowperf(bcOpt, pout, sxn, syn, szn, cpgas, mol, rho, rhou, rhov, rhow, rhoe, press, rhob, rhoub, rhovb, rhowb, rhoeb)
subroutine rflo_correctcorneredgecells(region, patch, bcType)
**********************************************************************Rocstar Simulation Suite Illinois Rocstar LLC All rights reserved ****Illinois Rocstar LLC IL **www illinoisrocstar com **sales illinoisrocstar com WITHOUT WARRANTY OF ANY **EXPRESS OR INCLUDING BUT NOT LIMITED TO THE WARRANTIES **OF FITNESS FOR A PARTICULAR PURPOSE AND **NONINFRINGEMENT IN NO EVENT SHALL THE CONTRIBUTORS OR **COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES OR OTHER WHETHER IN AN ACTION OF TORT OR **Arising OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE **USE OR OTHER DEALINGS WITH THE SOFTWARE **********************************************************************INTERFACE SUBROUTINE knode iend
subroutine rflo_bcondinflowvtperf(model, bcOpt, uInfl, vInfl, wInfl, tInfl, pInfl, sxn, syn, szn, cpgas, mol, rho, rhou, rhov, rhow, rhoe, press, rhob, rhoub, rhovb, rhowb, rhoeb)
subroutine, public rflo_boundaryconditionssend(regions, iReg)
subroutine, public rflo_bcondoutflow(region, patch)
subroutine, public rflo_boundaryconditionsrecv(regions, iReg)
subroutine, public rflo_bcondnoslipwall(region, patch)
**********************************************************************Rocstar Simulation Suite Illinois Rocstar LLC All rights reserved ****Illinois Rocstar LLC IL **www illinoisrocstar com **sales illinoisrocstar com WITHOUT WARRANTY OF ANY **EXPRESS OR INCLUDING BUT NOT LIMITED TO THE WARRANTIES **OF FITNESS FOR A PARTICULAR PURPOSE AND **NONINFRINGEMENT IN NO EVENT SHALL THE CONTRIBUTORS OR **COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES OR OTHER WHETHER IN AN ACTION OF TORT OR **Arising OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE **USE OR OTHER DEALINGS WITH THE SOFTWARE **********************************************************************INTERFACE SUBROUTINE idir
subroutine rflo_getcelloffset(region, iLev, iCellOffset, ijCellOffset)
subroutine rflo_senddummyireg(region, regionSrc, patch)
subroutine bcondinflowperf(bcOptType, bcOptFixed, ptot, ttot, betah, betav, mach, sxn, syn, szn, cpgas, mm, rl, rul, rvl, rwl, rr, rur, rvr, rwr, rer, pr)
subroutine rflo_exchangedummyint(region, regionSrc, patch, patchSrc)
Vector_n min(const Array_n_const &v1, const Array_n_const &v2)
subroutine rflo_senddummyconf(region, regionSrc, patch)
real(rfreal) function mixtperf_c_grt(G, R, T)
**********************************************************************Rocstar Simulation Suite Illinois Rocstar LLC All rights reserved ****Illinois Rocstar LLC IL **www illinoisrocstar com **sales illinoisrocstar com WITHOUT WARRANTY OF ANY **EXPRESS OR INCLUDING BUT NOT LIMITED TO THE WARRANTIES **OF FITNESS FOR A PARTICULAR PURPOSE AND **NONINFRINGEMENT IN NO EVENT SHALL THE CONTRIBUTORS OR **COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES OR OTHER WHETHER IN AN ACTION OF TORT OR **Arising OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE **USE OR OTHER DEALINGS WITH THE SOFTWARE **********************************************************************INTERFACE SUBROUTINE knode jend
subroutine, public rflo_boundaryconditionsset(regions, iReg)
**********************************************************************Rocstar Simulation Suite Illinois Rocstar LLC All rights reserved ****Illinois Rocstar LLC IL **www illinoisrocstar com **sales illinoisrocstar com WITHOUT WARRANTY OF ANY **EXPRESS OR INCLUDING BUT NOT LIMITED TO THE WARRANTIES **OF FITNESS FOR A PARTICULAR PURPOSE AND **NONINFRINGEMENT IN NO EVENT SHALL THE CONTRIBUTORS OR **COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES OR OTHER WHETHER IN AN ACTION OF TORT OR **Arising OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE **USE OR OTHER DEALINGS WITH THE SOFTWARE **********************************************************************INTERFACE SUBROUTINE kdir
real(rfreal) function mixtperf_eo_dgpuvw(D, G, P, U, V, W)
subroutine, public rflo_bcondfarfield(region, patch)
subroutine errorstop(global, errorCode, errorLine, addMessage)
**********************************************************************Rocstar Simulation Suite Illinois Rocstar LLC All rights reserved ****Illinois Rocstar LLC IL **www illinoisrocstar com **sales illinoisrocstar com WITHOUT WARRANTY OF ANY **EXPRESS OR INCLUDING BUT NOT LIMITED TO THE WARRANTIES **OF FITNESS FOR A PARTICULAR PURPOSE AND **NONINFRINGEMENT IN NO EVENT SHALL THE CONTRIBUTORS OR **COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES OR OTHER WHETHER IN AN ACTION OF TORT OR **Arising OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE **USE OR OTHER DEALINGS WITH THE SOFTWARE **********************************************************************INTERFACE SUBROUTINE knode jbeg
subroutine rflo_copyboundarydata(global, patchPrev, patch)
subroutine mixtureproperties(region, inBeg, inEnd, gasUpdate)
**********************************************************************Rocstar Simulation Suite Illinois Rocstar LLC All rights reserved ****Illinois Rocstar LLC IL **www illinoisrocstar com **sales illinoisrocstar com WITHOUT WARRANTY OF ANY **EXPRESS OR INCLUDING BUT NOT LIMITED TO THE WARRANTIES **OF FITNESS FOR A PARTICULAR PURPOSE AND **NONINFRINGEMENT IN NO EVENT SHALL THE CONTRIBUTORS OR **COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES OR OTHER WHETHER IN AN ACTION OF TORT OR **Arising OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE **USE OR OTHER DEALINGS WITH THE SOFTWARE **********************************************************************INTERFACE SUBROUTINE knode kbeg
subroutine deregisterfunction(global)
subroutine rflo_bcondinflowvpperf(model, bcOpt, uInfl, vInfl, wInfl, tInfl, pInfl, sxn, syn, szn, cpgas, mol, rho, rhou, rhov, rhow, rhoe, press, rhob, rhoub, rhovb, rhowb, rhoeb)
real(rfreal) function mixtperf_g_cpr(Cp, R)
subroutine rflo_bcondoutflowperf(bcOpt, pout, sxn, syn, szn, cpgas, mol, rho, rhou, rhov, rhow, rhoe, press, ud, vd, wd, tempd, uOld, vOld, wOld, udOld, vdOld, wdOld, rdOld, edOld, refLength, dtMin, kappa, rhob, rhoub, rhovb, rhowb, rhoeb)
**********************************************************************Rocstar Simulation Suite Illinois Rocstar LLC All rights reserved ****Illinois Rocstar LLC IL **www illinoisrocstar com **sales illinoisrocstar com WITHOUT WARRANTY OF ANY **EXPRESS OR INCLUDING BUT NOT LIMITED TO THE WARRANTIES **OF FITNESS FOR A PARTICULAR PURPOSE AND **NONINFRINGEMENT IN NO EVENT SHALL THE CONTRIBUTORS OR **COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES OR OTHER WHETHER IN AN ACTION OF TORT OR **Arising OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE **USE OR OTHER DEALINGS WITH THE SOFTWARE **********************************************************************INTERFACE SUBROUTINE jnode
subroutine, public rflo_bcondinjectioninit(region)