Rocstar  1.0
Rocstar multiphysics simulation application
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
RFLU_CentralFirstPatch_GL.F90
Go to the documentation of this file.
1 ! *********************************************************************
2 ! * Rocstar Simulation Suite *
3 ! * Copyright@2015, Illinois Rocstar LLC. All rights reserved. *
4 ! * *
5 ! * Illinois Rocstar LLC *
6 ! * Champaign, IL *
7 ! * www.illinoisrocstar.com *
8 ! * sales@illinoisrocstar.com *
9 ! * *
10 ! * License: See LICENSE file in top level of distribution package or *
11 ! * http://opensource.org/licenses/NCSA *
12 ! *********************************************************************
13 ! *********************************************************************
14 ! * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, *
15 ! * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES *
16 ! * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND *
17 ! * NONINFRINGEMENT. IN NO EVENT SHALL THE CONTRIBUTORS OR *
18 ! * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER *
19 ! * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, *
20 ! * Arising FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE *
21 ! * USE OR OTHER DEALINGS WITH THE SOFTWARE. *
22 ! *********************************************************************
23 ! ******************************************************************************
24 !
25 ! Purpose: Compute central convective fluxes for mixture using first-order accurate
26 ! approximation through a patch by using an average of variables.
27 !
28 ! Description: None.
29 !
30 ! Input:
31 ! pRegion Pointer to region
32 ! pPatch Pointer to patch
33 !
34 ! Output: None.
35 !
36 ! Notes: None.
37 !
38 ! ******************************************************************************
39 !
40 ! $Id: RFLU_CentralFirstPatch_GL.F90,v 1.5 2008/12/06 08:44:29 mtcampbe Exp $
41 !
42 ! Copyright: (c) 2006 by the University of Illinois
43 !
44 ! ******************************************************************************
45 
46 SUBROUTINE rflu_centralfirstpatch_gl(pRegion,pPatch)
47 
48  USE modglobal, ONLY: t_global
49  USE moddatatypes
50  USE modbndpatch, ONLY: t_patch
51  USE moddatastruct, ONLY: t_region
52  USE moderror
53  USE modparameters
54  USE modmpi
55 
60 
61  USE modinterfaces, ONLY: bcondinflowperf_gl, &
65  mixtperf_d_prt, &
69  mixtperf_p_drt, &
70  mixtperf_r_m, &
74 
75  IMPLICIT NONE
76 
77 ! ******************************************************************************
78 ! Definitions and declarations
79 ! ******************************************************************************
80 
81 ! ==============================================================================
82 ! Arguments
83 ! ==============================================================================
84 
85  TYPE(t_patch), POINTER :: ppatch
86  TYPE(t_region), POINTER :: pregion
87 
88 ! ==============================================================================
89 ! Locals
90 ! ==============================================================================
91 
92  LOGICAL :: corrflag,decideprintflag
93  CHARACTER(CHRLEN) :: rcsidentstring
94  INTEGER, PARAMETER :: max_inoutflow_locs = 10
95  INTEGER :: c1,bcoptfixed,bcopttype,distrib,ifl,indcp,indgs,indmf,indsd, &
96  indmol,nlocs
97  INTEGER :: loc(max_inoutflow_locs,min_val:max_val)
98  REAL(RFREAL) :: bp,bt,cml,cp,cvg,cvl,cvv,fs,fsu,icpref,mm,nm,nx,ny,nz, &
99  pl,po,pr,pref,press,ql,qr,rg,rhogr,rholr,rhovr,rgpgl, &
100  rgpgr,rel,rer,rl,rlpll,ro,rul,rv,rvpvl,rvpvr,rur,rvl, &
101  rvr,rwl,rwr,rr,rref,temp,to,ul,ur,vfgr,vflr,vfvr,vl,vr, &
102  vref,wl,wr,xc,yc,zc,ygr,ylr,yvr
103  REAL(RFREAL) :: flx(5)
104  REAL(RFREAL), DIMENSION(:), POINTER :: mfmixt
105  REAL(RFREAL), DIMENSION(:,:), POINTER :: cv,dv,gv,pcvspec,rhs,vals,sd
106  TYPE(t_global), POINTER :: global
107 
108 ! ******************************************************************************
109 ! Start
110 ! ******************************************************************************
111 
112  rcsidentstring = '$RCSfile: RFLU_CentralFirstPatch_GL.F90,v $'
113 
114  global => pregion%global
115 
116  CALL registerfunction(global,'RFLU_CentralFirstPatch_GL',&
117  'RFLU_CentralFirstPatch_GL.F90')
118 
119 ! ******************************************************************************
120 ! Set pointers and variables
121 ! ******************************************************************************
122 
123  indcp = pregion%mixtInput%indCp
124  indmf = pregion%mixtInput%indMfMixt
125  indsd = pregion%mixtInput%indSd
126  indmol = pregion%mixtInput%indMol
127 
128  indgs = pregion%grid%indGs
129 
130  distrib = ppatch%mixt%distrib
131 
132  cv => pregion%mixt%cv
133  dv => pregion%mixt%dv
134  gv => pregion%mixt%gv
135  rhs => pregion%mixt%rhs
136  sd => pregion%mixt%sd
137 
138  pcvspec => pregion%spec%cv
139 
140  mfmixt => ppatch%mfMixt
141 
142  nlocs = 0
143 
144  decideprintflag = rflu_decideprint(global)
145 
146  pref = global%refPressure
147  rref = global%refDensity
148  vref = global%refVelocity
149 
150  icpref = 2.0_rfreal/(rref*vref*vref)
151 
152 ! ******************************************************************************
153 ! Define constants
154 ! ******************************************************************************
155 
156  ro = global%refDensityLiq
157  po = global%refPressLiq
158  to = global%refTempLiq
159  bp = global%refBetaPLiq
160  bt = global%refBetaTLiq
161  cvl = global%refCvLiq
162 
163  rg = mixtperf_r_m(pregion%specInput%specType(1)%pMaterial%molw)
164  cvg = mixtperf_cv_cpr(pregion%specInput%specType(1)%pMaterial%spht,rg)
165 
166  rv = mixtperf_r_m(pregion%specInput%specType(2)%pMaterial%molw)
167  cvv = mixtperf_cv_cpr(pregion%specInput%specType(2)%pMaterial%spht,rv)
168 
169 ! ******************************************************************************
170 ! Select boundary type
171 ! ******************************************************************************
172 
173  SELECT CASE ( ppatch%bcType )
174 
175 ! ==============================================================================
176 ! Inflow based on velocity and temperature
177 ! ==============================================================================
178 
179  CASE ( bc_inflow_veltemp )
180  vals => ppatch%mixt%vals
181  bcopttype = ppatch%mixt%switches(bcswi_inflow_type)
182 
183  DO ifl = 1,ppatch%nBFaces
184  c1 = ppatch%bf2c(ifl)
185 
186  nx = ppatch%fn(xcoord,ifl)
187  ny = ppatch%fn(ycoord,ifl)
188  nz = ppatch%fn(zcoord,ifl)
189  nm = ppatch%fn(xyzmag,ifl)
190 
191  fs = ppatch%gs(indgs*ifl)
192 
193  rl = cv(cv_mixt_dens,c1)
194  rul = cv(cv_mixt_xmom,c1)
195  rvl = cv(cv_mixt_ymom,c1)
196  rwl = cv(cv_mixt_zmom,c1)
197  rel = cv(cv_mixt_ener,c1)
198  pl = dv(dv_mixt_pres,c1)
199  cml = dv(dv_mixt_soun,c1)
200 
201  rgpgl = pcvspec(1,c1)
202  rvpvl = pcvspec(2,c1)
203  rlpll = rl - rgpgl - rvpvl
204 
205  ur = vals(bcdat_inflow_u,distrib*ifl)
206  vr = vals(bcdat_inflow_v,distrib*ifl)
207  wr = vals(bcdat_inflow_w,distrib*ifl)
208  temp = vals(bcdat_inflow_t,distrib*ifl)
209 
210  ygr = ppatch%spec%vals(1,distrib*ifl)
211  yvr = ppatch%spec%vals(2,distrib*ifl)
212  ylr = 1.0_rfreal - ygr - yvr
213 
214  IF ( bcopttype /= bcopt_subsonic ) THEN
215  press = vals(bcdat_inflow_p, distrib*ifl)
216  rholr = mixtliq_d_dobpppobttto(ro,bp,bt,press,po,temp,to)
217  rhogr = mixtperf_d_prt(press,rg,temp)
218  rhovr = mixtperf_d_prt(press,rv,temp)
219  rr = 1.0_rfreal/(ygr/rhogr + yvr/rhovr + ylr/rholr)
220  vfgr = (rr*ygr)/rhogr
221  vfvr = (rr*yvr)/rhovr
222  vflr = (rr*ylr)/rholr
223  ELSE
224  press = pl+(sqrt(ur*ur+vr*vr+wr*wr) &
225  - sqrt(ul*ul+vl*vl+wl*wl))*rl*cml
226  rholr = mixtliq_d_dobpppobttto(ro,bp,bt,press,po,temp,to)
227  rhogr = mixtperf_d_prt(press,rg,temp)
228  rhovr = mixtperf_d_prt(press,rv,temp)
229  rr = 1.0_rfreal/(ygr/rhogr + yvr/rhovr + ylr/rholr)
230  vfgr = (rr*ygr)/rhogr
231  vfvr = (rr*yvr)/rhovr
232  vflr = (rr*ylr)/rholr
233  END IF ! bcOptType
234 
235  CALL bcondinflowperf_gl(bcopttype,ro,po,to,bp,bt,cvl,cvv,cvg, &
236  rg,rv,ur,vr,wr,vfgr,vfvr,vflr,temp, &
237  press,nx,ny,nz,rl,rul,rvl,rwl,rel, &
238  rgpgl,rvpvl,pl,rr,rur,rvr,rwr,rer, &
239  rgpgr,rvpvr,pr)
240 
241  ql = (rul*nx + rvl*ny + rwl*nz)/rl - fs
242  qr = (rur*nx + rvr*ny + rwr*nz)/rr - fs
243 
244  flx(1) = 0.5_rfreal*(ql* rl + qr* rr )*nm
245  flx(2) = 0.5_rfreal*(ql* rul + pl*nx + qr* rur + pr*nx)*nm
246  flx(3) = 0.5_rfreal*(ql* rvl + pl*ny + qr* rvr + pr*ny)*nm
247  flx(4) = 0.5_rfreal*(ql* rwl + pl*nz + qr* rwr + pr*nz)*nm
248  flx(5) = 0.5_rfreal*(ql*(rel + pl) + pl*fs + qr*(rer + pr) + pr*fs)*nm
249 
250  mfmixt(indmf*ifl) = flx(1)
251  ppatch%cp(ifl) = icpref*(0.5_rfreal*(pl + pr) - pref)
252 
253  rhs(cv_mixt_dens,c1) = rhs(cv_mixt_dens,c1) + flx(1)
254  rhs(cv_mixt_xmom,c1) = rhs(cv_mixt_xmom,c1) + flx(2)
255  rhs(cv_mixt_ymom,c1) = rhs(cv_mixt_ymom,c1) + flx(3)
256  rhs(cv_mixt_zmom,c1) = rhs(cv_mixt_zmom,c1) + flx(4)
257  rhs(cv_mixt_ener,c1) = rhs(cv_mixt_ener,c1) + flx(5)
258 
259  sd(sd_xmom,c1*indsd) = sd(sd_xmom,c1*indsd) &
260  + 0.5_rfreal*(rul/rl + rur/rr)*flx(1)
261  sd(sd_ymom,c1*indsd) = sd(sd_ymom,c1*indsd) &
262  + 0.5_rfreal*(rvl/rl + rvr/rr)*flx(1)
263  sd(sd_zmom,c1*indsd) = sd(sd_zmom,c1*indsd) &
264  + 0.5_rfreal*(rwl/rl + rwr/rr)*flx(1)
265 
266  IF ( pregion%irkStep == 1 ) THEN
267  global%massIn = global%massIn - min(flx(1),0.0_rfreal)
268  global%massOut = global%massOut + max(flx(1),0.0_rfreal)
269  END IF ! pRegion
270 
271  IF ( (global%checkLevel == check_high) .AND. &
272  (global%verbLevel >= verbose_high) .AND. &
273  (global%myProcid == masterproc) .AND. &
274  (decideprintflag .EQV. .true.) ) THEN
275  IF ( flx(1) > 0.0_rfreal ) THEN
276  nlocs = nlocs + 1
277 
278  IF ( nlocs == 1 ) THEN
279  global%warnCounter = global%warnCounter + 1
280 
281  WRITE(stdout,'(A,1X,A,1X,I9)') solver_name, &
282  '*** WARNING *** Outflow detected at inflow boundary!'
283  WRITE(stdout,'(A,3X,A,1X,I5.5)') solver_name,'Global region:', &
284  pregion%iRegionGlobal
285  IF ( global%flowType == flow_unsteady ) THEN
286  WRITE(stdout,'(A,3X,A,1X,1PE11.5)') solver_name, &
287  'Current time:', &
288  global%currentTime
289  ELSE
290  WRITE(stdout,'(A,3X,A,1X,I6.6)') solver_name, &
291  'Current iteration number:', &
292  global%currentIter
293  END IF ! global%flowType
294 
295  WRITE(stdout,'(A,3X,A,1X,I1)') solver_name, &
296  'Runge-Kutta stage:', &
297  pregion%irkStep
298  END IF ! nLocs
299 
300  IF ( nlocs <= max_inoutflow_locs ) THEN
301  loc(nlocs,min_val:max_val) = c1
302  END IF ! nLocs
303  END IF ! flx(1)
304  END IF ! global%checkLevel
305  END DO ! ifl
306 
307 ! ==============================================================================
308 ! Outflow
309 ! ==============================================================================
310 
311  CASE ( bc_outflow )
312  bcopttype = ppatch%mixt%switches(bcswi_outflow_type)
313 
314  IF ( bcopttype /= bcopt_supersonic ) THEN
315  vals => ppatch%mixt%vals
316  END IF ! bcOptType
317 
318  DO ifl = 1,ppatch%nBFaces
319  c1 = ppatch%bf2c(ifl)
320 
321  nx = ppatch%fn(xcoord,ifl)
322  ny = ppatch%fn(ycoord,ifl)
323  nz = ppatch%fn(zcoord,ifl)
324  nm = ppatch%fn(xyzmag,ifl)
325 
326  fs = ppatch%gs(indgs*ifl)
327 
328  rl = cv(cv_mixt_dens,c1)
329  rul = cv(cv_mixt_xmom,c1)
330  rvl = cv(cv_mixt_ymom,c1)
331  rwl = cv(cv_mixt_zmom,c1)
332  rel = cv(cv_mixt_ener,c1)
333  pl = dv(dv_mixt_pres,c1)
334 
335  rgpgl = pcvspec(1,c1)
336  rvpvl = pcvspec(2,c1)
337  rlpll = rl - rgpgl - rvpvl
338 
339  IF ( bcopttype /= bcopt_supersonic ) THEN
340  pr = vals(bcdat_outflow_press,distrib*ifl)
341  ELSE
342  pr = pl
343  END IF ! bcOptType
344 
345  CALL bcondoutflowperf_gl(bcopttype,ro,po,to,bp,bt,cvl, &
346  cvv,cvg,rg,rv,pr,nx,ny,nz,rl, &
347  rul,rvl,rwl,rel,rgpgl,rvpvl,pl, &
348  rr,rur,rvr,rwr,rer,rgpgr,rvpvr)
349 
350  ql = (rul*nx + rvl*ny + rwl*nz)/rl - fs
351  qr = (rur*nx + rvr*ny + rwr*nz)/rr - fs
352 
353  flx(1) = 0.5_rfreal*(ql* rl + qr* rr )*nm
354  flx(2) = 0.5_rfreal*(ql* rul + pl*nx + qr* rur + pr*nx)*nm
355  flx(3) = 0.5_rfreal*(ql* rvl + pl*ny + qr* rvr + pr*ny)*nm
356  flx(4) = 0.5_rfreal*(ql* rwl + pl*nz + qr* rwr + pr*nz)*nm
357  flx(5) = 0.5_rfreal*(ql*(rel + pl) + pl*fs + qr*(rer + pr) + pr*fs)*nm
358 
359  mfmixt(indmf*ifl) = flx(1)
360  ppatch%cp(ifl) = icpref*(0.5_rfreal*(pl + pr) - pref)
361 
362  rhs(cv_mixt_dens,c1) = rhs(cv_mixt_dens,c1) + flx(1)
363  rhs(cv_mixt_xmom,c1) = rhs(cv_mixt_xmom,c1) + flx(2)
364  rhs(cv_mixt_ymom,c1) = rhs(cv_mixt_ymom,c1) + flx(3)
365  rhs(cv_mixt_zmom,c1) = rhs(cv_mixt_zmom,c1) + flx(4)
366  rhs(cv_mixt_ener,c1) = rhs(cv_mixt_ener,c1) + flx(5)
367 
368  sd(sd_xmom,c1*indsd) = sd(sd_xmom,c1*indsd) &
369  + 0.5_rfreal*(rul/rl + rur/rr)*flx(1)
370  sd(sd_ymom,c1*indsd) = sd(sd_ymom,c1*indsd) &
371  + 0.5_rfreal*(rvl/rl + rvr/rr)*flx(1)
372  sd(sd_zmom,c1*indsd) = sd(sd_zmom,c1*indsd) &
373  + 0.5_rfreal*(rwl/rl + rwr/rr)*flx(1)
374 
375  IF ( pregion%irkStep == 1 ) THEN
376  global%massIn = global%massIn - min(flx(1),0.0_rfreal)
377  global%massOut = global%massOut + max(flx(1),0.0_rfreal)
378  END IF ! pRegion
379 
380  IF ( (global%checkLevel == check_high) .AND. &
381  (global%verbLevel >= verbose_high) .AND. &
382  (global%myProcid == masterproc) .AND. &
383  (decideprintflag .EQV. .true.) ) THEN
384  IF ( flx(1) < 0.0_rfreal ) THEN
385  nlocs = nlocs + 1
386 
387  IF ( nlocs == 1 ) THEN
388  global%warnCounter = global%warnCounter + 1
389 
390  WRITE(stdout,'(A,1X,A,1X,I9)') solver_name, &
391  '*** WARNING *** Inflow detected at outflow boundary!'
392  WRITE(stdout,'(A,3X,A,1X,I5.5)') solver_name,'Global region:', &
393  pregion%iRegionGlobal
394  IF ( global%flowType == flow_unsteady ) THEN
395  WRITE(stdout,'(A,3X,A,1X,1PE11.5)') solver_name, &
396  'Current time:', &
397  global%currentTime
398  ELSE
399  WRITE(stdout,'(A,3X,A,1X,I6.6)') solver_name, &
400  'Current iteration number:', &
401  global%currentIter
402  END IF ! global%flowType
403 
404  WRITE(stdout,'(A,3X,A,1X,I1)') solver_name, &
405  'Runge-Kutta stage:', &
406  pregion%irkStep
407  END IF ! nLocs
408 
409  IF ( nlocs <= max_inoutflow_locs ) THEN
410  loc(nlocs,min_val:max_val) = c1
411  END IF ! nLocs
412  END IF ! flx(1)
413  END IF ! global%checkLevel
414  END DO ! ifl
415 
416 ! ------------------------------------------------------------------------------
417 ! Write info on inflow at outflow boundary
418 ! ------------------------------------------------------------------------------
419 
420  IF ( (global%checkLevel == check_high) .AND. &
421  (global%verbLevel >= verbose_high) .AND. &
422  (global%myProcid == masterproc) .AND. &
423  (decideprintflag .EQV. .true.) .AND. &
424  (nlocs > 0) ) THEN
425  IF ( nlocs > max_inoutflow_locs ) THEN
426  WRITE(stdout,'(A,3X,A,1X,I3,1X,A,1X,I9,1X,A)') solver_name, &
427  'Only wrote the first',max_inoutflow_locs,'of',nlocs, &
428  'outflow faces with inflow.'
429  CALL rflu_printlocinfo(pregion,loc,max_inoutflow_locs, &
430  locinfo_mode_silent,output_mode_anybody)
431  ELSE
432  CALL rflu_printlocinfo(pregion,loc(1:nlocs,min_val:max_val),nlocs, &
433  locinfo_mode_silent,output_mode_anybody)
434  END IF ! nLocs
435  END IF ! global%verbLevel
436 
437 ! ==============================================================================
438 ! Slip wall (weak imposition)
439 ! ==============================================================================
440 
441  CASE ( bc_slipwall )
442  DO ifl = 1,ppatch%nBFaces
443  c1 = ppatch%bf2c(ifl)
444 
445  nx = ppatch%fn(xcoord,ifl)
446  ny = ppatch%fn(ycoord,ifl)
447  nz = ppatch%fn(zcoord,ifl)
448  nm = ppatch%fn(xyzmag,ifl)
449 
450  fs = ppatch%gs(indgs*ifl)
451  fsu = rflu_descalegridspeed(pregion,fs)
452 
453  rl = cv(cv_mixt_dens,c1)
454  rul = cv(cv_mixt_xmom,c1)
455  rvl = cv(cv_mixt_ymom,c1)
456  rwl = cv(cv_mixt_zmom,c1)
457  pl = dv(dv_mixt_pres,c1)
458 
459  cp = gv(gv_mixt_cp ,indcp *c1)
460  mm = gv(gv_mixt_mol,indmol*c1)
461 
462  CALL rflu_setrindstateslipwallperf(cp,mm,nx,ny,nz,rl,rul, &
463  rvl,rwl,fsu,pl)
464 
465  flx(2) = pl*nx*nm
466  flx(3) = pl*ny*nm
467  flx(4) = pl*nz*nm
468  flx(5) = pl*fs*nm
469 
470  mfmixt(indmf*ifl) = 0.0_rfreal
471  ppatch%cp(ifl) = icpref*(pl - pref)
472 
473  rhs(cv_mixt_xmom,c1) = rhs(cv_mixt_xmom,c1) + flx(2)
474  rhs(cv_mixt_ymom,c1) = rhs(cv_mixt_ymom,c1) + flx(3)
475  rhs(cv_mixt_zmom,c1) = rhs(cv_mixt_zmom,c1) + flx(4)
476  rhs(cv_mixt_ener,c1) = rhs(cv_mixt_ener,c1) + flx(5)
477  END DO ! ifl
478 
479 ! ==============================================================================
480 ! No-slip wall
481 ! ==============================================================================
482 
483  CASE ( bc_noslipwall )
484  DO ifl = 1,ppatch%nBFaces
485  c1 = ppatch%bf2c(ifl)
486 
487  nx = ppatch%fn(xcoord,ifl)
488  ny = ppatch%fn(ycoord,ifl)
489  nz = ppatch%fn(zcoord,ifl)
490  nm = ppatch%fn(xyzmag,ifl)
491 
492  fs = ppatch%gs(indgs*ifl)
493 
494  pl = dv(dv_mixt_pres,c1)
495 
496  flx(2) = pl*nx*nm
497  flx(3) = pl*ny*nm
498  flx(4) = pl*nz*nm
499  flx(5) = pl*fs*nm
500 
501  mfmixt(indmf*ifl) = 0.0_rfreal
502  ppatch%cp(ifl) = icpref*(pl - pref)
503 
504  rhs(cv_mixt_xmom,c1) = rhs(cv_mixt_xmom,c1) + flx(2)
505  rhs(cv_mixt_ymom,c1) = rhs(cv_mixt_ymom,c1) + flx(3)
506  rhs(cv_mixt_zmom,c1) = rhs(cv_mixt_zmom,c1) + flx(4)
507  rhs(cv_mixt_ener,c1) = rhs(cv_mixt_ener,c1) + flx(5)
508  END DO ! ifl
509 
510 ! ==============================================================================
511 ! Boundaries for which fluxes must not or need not be computed
512 ! ==============================================================================
513 
514  CASE ( bc_periodic, &
515  bc_symmetry, &
516  bc_virtual )
517 
518 ! ==============================================================================
519 ! Default
520 ! ==============================================================================
521 
522  CASE default
523  CALL errorstop(global,err_reached_default,__line__)
524  END SELECT ! pPatch%bcType
525 
526 ! ******************************************************************************
527 ! End
528 ! ******************************************************************************
529 
530  CALL deregisterfunction(global)
531 
532 END SUBROUTINE rflu_centralfirstpatch_gl
533 
534 ! ******************************************************************************
535 !
536 ! RCS Revision history:
537 !
538 ! $Log: RFLU_CentralFirstPatch_GL.F90,v $
539 ! Revision 1.5 2008/12/06 08:44:29 mtcampbe
540 ! Updated license.
541 !
542 ! Revision 1.4 2008/11/19 22:17:40 mtcampbe
543 ! Added Illinois Open Source License/Copyright
544 !
545 ! Revision 1.3 2006/08/19 15:39:52 mparmar
546 ! Renamed patch variables
547 !
548 ! Revision 1.2 2006/04/13 20:02:27 haselbac
549 ! Added periodic and virtual boundary CASE statement
550 !
551 ! Revision 1.1 2006/03/26 20:21:01 haselbac
552 ! Initial revision
553 !
554 ! ******************************************************************************
555 
556 
557 
558 
559 
560 
561 
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)
Definition: MixtPerf_P.F90:39
real(rfreal) function mixtperf_r_m(M)
Definition: MixtPerf_R.F90:54
NT rhs
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)
Definition: Vector_n.h:354
subroutine registerfunction(global, funName, fileName)
Definition: ModError.F90:449
real(rfreal) function mixtperf_d_prt(P, R, T)
Definition: MixtPerf_D.F90:71
double sqrt(double d)
Definition: double.h:73
real(rfreal) function mixtperf_r_cpg(Cp, G)
Definition: MixtPerf_R.F90:39
real(rfreal) function, public rflu_descalegridspeed(pRegion, fs)
subroutine rflu_centralfirstpatch_gl(pRegion, pPatch)
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)
Definition: Vector_n.h:346
real(rfreal) function mixtliq_d_dobpppobttto(Dz, Bp, Bt, P, Po, T, To)
Definition: MixtLiq_D.F90:40
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)
LOGICAL function rflu_decideprint(global)
real(rfreal) function mixtperf_eo_dgpuvw(D, G, P, U, V, W)
Definition: MixtPerf_E.F90:40
subroutine errorstop(global, errorCode, errorLine, addMessage)
Definition: ModError.F90:483
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)
Definition: ModError.F90:469
real(rfreal) function mixtperf_g_cpr(Cp, R)
Definition: MixtPerf_G.F90:39
real(rfreal) function mixtperf_cv_cpr(Cp, R)
Definition: MixtPerf_Cv.F90:39
real(rfreal) function mixtperf_p_drt(D, R, T)
Definition: MixtPerf_P.F90:54