Rocstar  1.0
Rocstar multiphysics simulation application
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
RFLU_ModViscousFlux.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: Collection of HLLC flux routines.
26 !
27 ! Description: None.
28 !
29 ! Notes: None.
30 !
31 ! ******************************************************************************
32 !
33 ! $Id: RFLU_ModViscousFlux.F90,v 1.10 2008/12/06 08:44:24 mtcampbe Exp $
34 !
35 ! Copyright: (c) 2005 by the University of Illinois
36 !
37 ! ******************************************************************************
38 
40 
41  USE moddatatypes
42  USE modglobal, ONLY: t_global
43  USE modparameters
44  USE moderror
45  USE moddatastruct, ONLY: t_region
46  USE modbndpatch, ONLY: t_patch
47  USE modgrid, ONLY: t_grid
48 
49  IMPLICIT NONE
50 
51  PRIVATE
52  PUBLIC :: rflu_enforceheatflux, &
55 
56 ! ******************************************************************************
57 ! Declarations and definitions
58 ! ******************************************************************************
59 
60  CHARACTER(CHRLEN) :: &
61  RCSIdentString = '$RCSfile: RFLU_ModViscousFlux.F90,v $ $Revision: 1.10 $'
62 
63 ! *****************************************************************************
64 ! Routines
65 ! *****************************************************************************
66 
67  CONTAINS
68 
69 
70 
71 
72 
73 ! ******************************************************************************
74 !
75 ! Purpose: Enforce heat flux.
76 !
77 ! Description: None.
78 !
79 ! Input:
80 ! pRegion Pointer to region
81 ! tv Transport variables
82 ! tvIndxCond Index to conductity entry in tv
83 !
84 ! Output: None.
85 !
86 ! Notes: None.
87 !
88 ! ******************************************************************************
89 
90 SUBROUTINE rflu_enforceheatflux(pRegion,tv,tvIndxCond)
91 
92  IMPLICIT NONE
93 
94 ! ******************************************************************************
95 ! Declarations
96 ! ******************************************************************************
97 
98 ! ==============================================================================
99 ! Arguments
100 ! ==============================================================================
101 
102  INTEGER, INTENT(IN) :: tvindxcond
103  REAL(RFREAL), DIMENSION(:,:) :: tv
104  TYPE(t_region), POINTER :: pregion
105 
106 ! ==============================================================================
107 ! Locals
108 ! ==============================================================================
109 
110  INTEGER :: c1,distrib,ifg,ifgbeg,ifgend,ifl,ipatch
111  REAL(RFREAL) :: cond,dtdn,dtdx,dtdy,dtdz,nx,ny,nz
112  REAL(RFREAL) :: tvf(tvindxcond)
113  TYPE(t_global), POINTER :: global
114  TYPE(t_grid), POINTER :: pgrid
115  TYPE(t_patch), POINTER :: ppatch
116 
117 ! ******************************************************************************
118 ! Start
119 ! ******************************************************************************
120 
121  global => pregion%global
122 
123  CALL registerfunction(global,'RFLU_EnforceHeatFlux',&
124  'RFLU_ModViscousFlux.F90')
125 
126 ! ******************************************************************************
127 ! Set pointers and variables
128 ! ******************************************************************************
129 
130  pgrid => pregion%grid
131 
132 ! ******************************************************************************
133 ! Loop over patches
134 ! ******************************************************************************
135 
136  DO ipatch = 1,pgrid%nPatches
137  ppatch => pregion%patches(ipatch)
138 
139  distrib = ppatch%mixt%distrib
140 
141 ! ==============================================================================
142 ! Select boundary type
143 ! ==============================================================================
144 
145  SELECT CASE ( ppatch%bcType )
146 
147 ! ------------------------------------------------------------------------------
148 ! No-slip wall with imposed heat flux
149 ! ------------------------------------------------------------------------------
150 
151  CASE ( bc_noslipwall_hflux )
152 
153 ! ----- Loop over faces and compute gradients ----------------------------------
154 
155  DO ifl = 1,ppatch%nBFaces
156  c1 = ppatch%bf2c(ifl)
157 
158 ! ------- Get face geometry
159 
160  nx = ppatch%fn(xcoord,ifl)
161  ny = ppatch%fn(ycoord,ifl)
162  nz = ppatch%fn(zcoord,ifl)
163 
164 ! ------- Get face state
165 
166  cond = tv(tvindxcond,c1)
167 
168 ! TEMPORARY
169 ! CALL RFLU_InterpCells2FacePatch(pRegion,pPatch,ifl, &
170 ! pRegion%mixt%tv(tvIndxCond:tvIndxCond,:), &
171 ! tvf(tvIndxCond:tvIndxCond))
172 !
173 ! cond = tvf(tvIndxCond)
174 ! END TEMPORARY
175 
176 ! ------- Compute and set gradient
177 
178  dtdn = -ppatch%mixt%vals(bcdat_noslip_q,distrib*ifl)/cond
179 
180  dtdx = dtdn*nx
181  dtdy = dtdn*ny
182  dtdz = dtdn*nz
183 
184 ! ------- Set gradient
185 
186  ppatch%mixt%gradFace(xcoord,grbf_mixt_temp,ifl) = dtdx
187  ppatch%mixt%gradFace(ycoord,grbf_mixt_temp,ifl) = dtdy
188  ppatch%mixt%gradFace(zcoord,grbf_mixt_temp,ifl) = dtdz
189 
190  END DO ! ifl
191 
192 ! ------------------------------------------------------------------------------
193 ! Any other patches
194 ! ------------------------------------------------------------------------------
195 
196  CASE default
197 
198  END SELECT ! pPatch%bcType
199  END DO ! iPatches
200 
201 ! ******************************************************************************
202 ! End
203 ! ******************************************************************************
204 
205  CALL deregisterfunction(global)
206 
207 END SUBROUTINE rflu_enforceheatflux
208 
209 
210 
211 
212 
213 
214 
215 ! ******************************************************************************
216 !
217 ! Purpose: Compute viscous fluxes for actual faces.
218 !
219 ! Description: None.
220 !
221 ! Input:
222 ! pRegion Pointer to region
223 ! tv Transport variables
224 ! tvIndxVisc Index to viscosity entry in tv
225 ! tvIndxCond Index to conductity entry in tv
226 !
227 ! Output: None.
228 !
229 ! Notes: None.
230 !
231 ! ******************************************************************************
232 
233 SUBROUTINE rflu_viscousfluxes(pRegion,tv,tvIndxVisc,tvIndxCond)
234 
236 
237  IMPLICIT NONE
238 
239 ! ******************************************************************************
240 ! Declarations
241 ! ******************************************************************************
242 
243 ! ==============================================================================
244 ! Arguments
245 ! ==============================================================================
246 
247  INTEGER, INTENT(IN) :: tvindxcond,tvindxvisc
248  REAL(RFREAL), DIMENSION(:,:) :: tv
249  TYPE(t_region), POINTER :: pregion
250 
251 ! ==============================================================================
252 ! Locals
253 ! ==============================================================================
254 
255  INTEGER :: c1,c2,ifg
256  REAL(RFREAL), PARAMETER :: two_thirds = 2.0_rfreal/3.0_rfreal
257  REAL(RFREAL) :: beta,cond,divterm,dtdx,dtdy,dtdz,dudx,dudy,dudz,dvdx,dvdy, &
258  dvdz,dwdx,dwdy,dwdz,nm,nx,ny,nz,s11,s12,s13,s21,s22,s23, &
259  s31,s32,s33,u,v,visc,w
260  REAL(RFREAL) :: fd(4)
261  REAL(RFREAL) :: cvf(cv_mixt_xvel:cv_mixt_zvel),tvf(tvindxvisc:tvindxcond)
262  REAL(RFREAL), DIMENSION(:,:), POINTER :: pcv,pdiss
263  TYPE(t_global), POINTER :: global
264  TYPE(t_grid), POINTER :: pgrid
265 
266 ! ******************************************************************************
267 ! Start
268 ! ******************************************************************************
269 
270  global => pregion%global
271 
272  CALL registerfunction(global,'RFLU_ViscousFluxes',&
273  'RFLU_ModViscousFlux.F90')
274 
275 ! ******************************************************************************
276 ! Set variables and pointers
277 ! ******************************************************************************
278 
279  pgrid => pregion%grid
280  pcv => pregion%mixt%cv
281  pdiss => pregion%mixt%diss
282 
283  beta = pregion%mixtInput%betrk(pregion%irkStep)
284 
285 ! ******************************************************************************
286 ! Check state of conserved state variable vector (defensive coding)
287 ! ******************************************************************************
288 
289  IF ( pregion%mixt%cvState /= cv_mixt_state_duvwt ) THEN
290  CALL errorstop(global,err_cv_state_invalid,__line__)
291  END IF ! pRegion%mixt%cvState
292 
293 ! ******************************************************************************
294 ! Loop over faces and compute viscous fluxes
295 ! ******************************************************************************
296 
297  DO ifg = 1,pgrid%nFaces
298  c1 = pgrid%f2c(1,ifg)
299  c2 = pgrid%f2c(2,ifg)
300 
301 ! ==============================================================================
302 ! Get face geometry
303 ! ==============================================================================
304 
305  nx = pgrid%fn(xcoord,ifg)
306  ny = pgrid%fn(ycoord,ifg)
307  nz = pgrid%fn(zcoord,ifg)
308  nm = pgrid%fn(xyzmag,ifg)
309 
310 ! ==============================================================================
311 ! Get face state
312 ! ==============================================================================
313 
314  u = 0.5_rfreal*(pcv(cv_mixt_xvel,c1) + pcv(cv_mixt_xvel,c2))
315  v = 0.5_rfreal*(pcv(cv_mixt_yvel,c1) + pcv(cv_mixt_yvel,c2))
316  w = 0.5_rfreal*(pcv(cv_mixt_zvel,c1) + pcv(cv_mixt_zvel,c2))
317 
318  visc = 0.5_rfreal*(tv(tvindxvisc,c1) + tv(tvindxvisc,c2))
319  cond = 0.5_rfreal*(tv(tvindxcond,c1) + tv(tvindxcond,c2))
320 
321 ! TEMPORARY
322 ! CALL RFLU_InterpCells2Face(pRegion,ifg, &
323 ! pRegion%mixt%cv(CV_MIXT_XVEL:CV_MIXT_ZVEL,:), &
324 ! cvf(CV_MIXT_XVEL:CV_MIXT_ZVEL))
325 !
326 ! CALL RFLU_InterpCells2Face(pRegion,ifg, &
327 ! pRegion%mixt%tv(tvIndxVisc:tvIndxCond,:), &
328 ! tvf(tvIndxVisc:tvIndxCond))
329 !
330 ! u = cvf(CV_MIXT_XVEL)
331 ! v = cvf(CV_MIXT_YVEL)
332 ! w = cvf(CV_MIXT_ZVEL)
333 !
334 ! visc = tvf(tvIndxVisc)
335 ! cond = tvf(tvIndxCond)
336 ! END TEMPORARY
337 
338 ! ==============================================================================
339 ! Get gradients
340 ! ==============================================================================
341 
342  dudx = pregion%mixt%gradFace(xcoord,grf_mixt_xvel,ifg)
343  dudy = pregion%mixt%gradFace(ycoord,grf_mixt_xvel,ifg)
344  dudz = pregion%mixt%gradFace(zcoord,grf_mixt_xvel,ifg)
345 
346  dvdx = pregion%mixt%gradFace(xcoord,grf_mixt_yvel,ifg)
347  dvdy = pregion%mixt%gradFace(ycoord,grf_mixt_yvel,ifg)
348  dvdz = pregion%mixt%gradFace(zcoord,grf_mixt_yvel,ifg)
349 
350  dwdx = pregion%mixt%gradFace(xcoord,grf_mixt_zvel,ifg)
351  dwdy = pregion%mixt%gradFace(ycoord,grf_mixt_zvel,ifg)
352  dwdz = pregion%mixt%gradFace(zcoord,grf_mixt_zvel,ifg)
353 
354  dtdx = pregion%mixt%gradFace(xcoord,grf_mixt_temp,ifg)
355  dtdy = pregion%mixt%gradFace(ycoord,grf_mixt_temp,ifg)
356  dtdz = pregion%mixt%gradFace(zcoord,grf_mixt_temp,ifg)
357 
358 ! ==============================================================================
359 ! Compute fluxes
360 ! ==============================================================================
361 
362  divterm = two_thirds*(dudx + dvdy + dwdz)
363 
364  s11 = 2.0_rfreal*dudx - divterm
365  s12 = dudy + dvdx
366  s13 = dudz + dwdx
367 
368  s21 = s12
369  s22 = 2.0_rfreal*dvdy - divterm
370  s23 = dvdz + dwdy
371 
372  s31 = s13
373  s32 = s23
374  s33 = 2.0_rfreal*dwdz - divterm
375 
376  fd(1) = visc*(s11*nx + s12*ny + s13*nz)*nm
377  fd(2) = visc*(s21*nx + s22*ny + s23*nz)*nm
378  fd(3) = visc*(s31*nx + s32*ny + s33*nz)*nm
379 
380  fd(4) = u*fd(1) + v*fd(2) + w*fd(3) + cond*(dtdx*nx + dtdy*ny + dtdz*nz)*nm
381 
382 ! ==============================================================================
383 ! Accumulate into residual
384 ! ==============================================================================
385 
386  pdiss(cv_mixt_xmom,c1) = pdiss(cv_mixt_xmom,c1) + beta*fd(1)
387  pdiss(cv_mixt_ymom,c1) = pdiss(cv_mixt_ymom,c1) + beta*fd(2)
388  pdiss(cv_mixt_zmom,c1) = pdiss(cv_mixt_zmom,c1) + beta*fd(3)
389  pdiss(cv_mixt_ener,c1) = pdiss(cv_mixt_ener,c1) + beta*fd(4)
390 
391  pdiss(cv_mixt_xmom,c2) = pdiss(cv_mixt_xmom,c2) - beta*fd(1)
392  pdiss(cv_mixt_ymom,c2) = pdiss(cv_mixt_ymom,c2) - beta*fd(2)
393  pdiss(cv_mixt_zmom,c2) = pdiss(cv_mixt_zmom,c2) - beta*fd(3)
394  pdiss(cv_mixt_ener,c2) = pdiss(cv_mixt_ener,c2) - beta*fd(4)
395  END DO ! ifg
396 
397 ! ******************************************************************************
398 ! End
399 ! ******************************************************************************
400 
401  CALL deregisterfunction(global)
402 
403 END SUBROUTINE rflu_viscousfluxes
404 
405 
406 
407 
408 
409 
410 
411 
412 
413 ! ******************************************************************************
414 !
415 ! Purpose: Compute viscous fluxes for actual faces on boundary patches.
416 !
417 ! Description: None.
418 !
419 ! Input:
420 ! pRegion Pointer to region
421 ! tv Transport variables
422 ! tvIndxVisc Index to viscosity entry in tv
423 ! tvIndxCond Index to conductity entry in tv
424 !
425 ! Output: None.
426 !
427 ! Notes: None.
428 !
429 ! ******************************************************************************
430 
431 SUBROUTINE rflu_viscousfluxespatches(pRegion,tv,tvIndxVisc,tvIndxCond)
432 
434 
435  IMPLICIT NONE
436 
437 ! ******************************************************************************
438 ! Declarations
439 ! ******************************************************************************
440 
441 ! ==============================================================================
442 ! Arguments
443 ! ==============================================================================
444 
445  INTEGER, INTENT(IN) :: tvindxcond,tvindxvisc
446  REAL(RFREAL), DIMENSION(:,:) :: tv
447  TYPE(t_region), POINTER :: pregion
448 
449 ! ==============================================================================
450 ! Locals
451 ! ==============================================================================
452 
453  INTEGER :: c1,ifg,ifgbeg,ifgend,ifl,ipatch
454  REAL(RFREAL), PARAMETER :: two_thirds = 2.0_rfreal/3.0_rfreal
455  REAL(RFREAL) :: beta,cond,divterm,dtdx,dtdy,dtdz,dudx,dudy,dudz,dvdx,dvdy, &
456  dvdz,dwdx,dwdy,dwdz,icfref,ichref,nm,nx,ny,nz,rref,s11, &
457  s12,s13,s21,s22,s23,s31,s32,s33,visc,vref
458  REAL(RFREAL) :: fd(4)
459  REAL(RFREAL) :: tvf(tvindxvisc:tvindxcond)
460  REAL(RFREAL), DIMENSION(:,:), POINTER :: pcv,pdiss
461  TYPE(t_global), POINTER :: global
462  TYPE(t_grid), POINTER :: pgrid
463  TYPE(t_patch), POINTER :: ppatch
464 
465 ! ******************************************************************************
466 ! Start
467 ! ******************************************************************************
468 
469  global => pregion%global
470 
471  CALL registerfunction(global,'RFLU_ViscousFluxesPatches',&
472  'RFLU_ModViscousFlux.F90')
473 
474 ! ******************************************************************************
475 ! Set variables and pointers
476 ! ******************************************************************************
477 
478  pgrid => pregion%grid
479  pcv => pregion%mixt%cv
480  pdiss => pregion%mixt%diss
481 
482  beta = pregion%mixtInput%betrk(pregion%irkStep)
483 
484  rref = global%refDensity
485  vref = global%refVelocity
486 
487  icfref = 2.0_rfreal/(rref*vref*vref)
488  ichref = 2.0_rfreal/(rref*vref*vref*vref)
489 
490 ! ******************************************************************************
491 ! Check state of conserved state variable vector (defensive coding)
492 ! ******************************************************************************
493 
494  IF ( pregion%mixt%cvState /= cv_mixt_state_duvwt ) THEN
495  CALL errorstop(global,err_cv_state_invalid,__line__)
496  END IF ! pRegion%mixt%cvState
497 
498 ! ******************************************************************************
499 ! Loop over patches
500 ! ******************************************************************************
501 
502  DO ipatch = 1,pgrid%nPatches
503  ppatch => pregion%patches(ipatch)
504 
505 ! ==============================================================================
506 ! Select boundary type
507 ! ==============================================================================
508 
509  SELECT CASE ( ppatch%bcType )
510 
511 ! ------------------------------------------------------------------------------
512 ! No-slip wall
513 ! ------------------------------------------------------------------------------
514 
515  CASE ( bc_noslipwall_hflux,bc_noslipwall_temp )
516 
517 ! ----- Loop over faces and compute gradients ----------------------------------
518 
519  DO ifl = 1,ppatch%nBFaces
520  c1 = ppatch%bf2c(ifl)
521 
522 ! ------- Get face geometry
523 
524  nx = ppatch%fn(xcoord,ifl)
525  ny = ppatch%fn(ycoord,ifl)
526  nz = ppatch%fn(zcoord,ifl)
527  nm = ppatch%fn(xyzmag,ifl)
528 
529 ! ------- Get face state
530 
531  visc = tv(tvindxvisc,c1)
532  cond = tv(tvindxcond,c1)
533 
534 ! TEMPORARY
535 ! CALL RFLU_InterpCells2FacePatch(pRegion,pPatch,ifl, &
536 ! pRegion%mixt%tv(tvIndxVisc:tvIndxCond,:), &
537 ! tvf(tvIndxVisc:tvIndxCond))
538 !
539 ! visc = tvf(tvIndxVisc)
540 ! cond = tvf(tvIndxCond)
541 ! END TEMPORARY
542 
543 ! ------- Get gradients
544 
545  dudx = ppatch%mixt%gradFace(xcoord,grbf_mixt_xvel,ifl)
546  dudy = ppatch%mixt%gradFace(ycoord,grbf_mixt_xvel,ifl)
547  dudz = ppatch%mixt%gradFace(zcoord,grbf_mixt_xvel,ifl)
548 
549  dvdx = ppatch%mixt%gradFace(xcoord,grbf_mixt_yvel,ifl)
550  dvdy = ppatch%mixt%gradFace(ycoord,grbf_mixt_yvel,ifl)
551  dvdz = ppatch%mixt%gradFace(zcoord,grbf_mixt_yvel,ifl)
552 
553  dwdx = ppatch%mixt%gradFace(xcoord,grbf_mixt_zvel,ifl)
554  dwdy = ppatch%mixt%gradFace(ycoord,grbf_mixt_zvel,ifl)
555  dwdz = ppatch%mixt%gradFace(zcoord,grbf_mixt_zvel,ifl)
556 
557  dtdx = ppatch%mixt%gradFace(xcoord,grbf_mixt_temp,ifl)
558  dtdy = ppatch%mixt%gradFace(ycoord,grbf_mixt_temp,ifl)
559  dtdz = ppatch%mixt%gradFace(zcoord,grbf_mixt_temp,ifl)
560 
561 ! ------- Compute fluxes
562 
563  divterm = two_thirds*(dudx + dvdy + dwdz)
564 
565  s11 = 2.0_rfreal*dudx - divterm
566  s12 = dudy + dvdx
567  s13 = dudz + dwdx
568 
569  s21 = s12
570  s22 = 2.0_rfreal*dvdy - divterm
571  s23 = dvdz + dwdy
572 
573  s31 = s13
574  s32 = s23
575  s33 = 2.0_rfreal*dwdz - divterm
576 
577  fd(1) = visc*(s11 *nx + s12 *ny + s13 *nz)
578  fd(2) = visc*(s21 *nx + s22 *ny + s23 *nz)
579  fd(3) = visc*(s31 *nx + s32 *ny + s33 *nz)
580  fd(4) = cond*(dtdx*nx + dtdy*ny + dtdz*nz)
581 
582 ! ------- Set friction and heat-transfer coefficients
583 
584  ppatch%cf(xcoord,ifl) = -icfref*fd(1)
585  ppatch%cf(ycoord,ifl) = -icfref*fd(2)
586  ppatch%cf(zcoord,ifl) = -icfref*fd(3)
587 
588  ppatch%ch(ifl) = ichref*fd(4)
589 
590 ! ------- Accumulate into residual
591 
592  pdiss(cv_mixt_xmom,c1) = pdiss(cv_mixt_xmom,c1) + beta*fd(1)*nm
593  pdiss(cv_mixt_ymom,c1) = pdiss(cv_mixt_ymom,c1) + beta*fd(2)*nm
594  pdiss(cv_mixt_zmom,c1) = pdiss(cv_mixt_zmom,c1) + beta*fd(3)*nm
595  pdiss(cv_mixt_ener,c1) = pdiss(cv_mixt_ener,c1) + beta*fd(4)*nm
596 
597  END DO ! ifl
598 
599 ! ------------------------------------------------------------------------------
600 ! Any other patches
601 ! ------------------------------------------------------------------------------
602 
603  CASE default
604 
605  END SELECT ! pPatch%bcType
606  END DO ! iPatches
607 
608 ! ******************************************************************************
609 ! End
610 ! ******************************************************************************
611 
612  CALL deregisterfunction(global)
613 
614 END SUBROUTINE rflu_viscousfluxespatches
615 
616 
617 
618 
619 
620 
621 
622 
623 
624 ! ******************************************************************************
625 ! End
626 ! ******************************************************************************
627 
628 END MODULE rflu_modviscousflux
629 
630 
631 ! ******************************************************************************
632 !
633 ! RCS Revision history:
634 !
635 ! $Log: RFLU_ModViscousFlux.F90,v $
636 ! Revision 1.10 2008/12/06 08:44:24 mtcampbe
637 ! Updated license.
638 !
639 ! Revision 1.9 2008/11/19 22:17:35 mtcampbe
640 ! Added Illinois Open Source License/Copyright
641 !
642 ! Revision 1.8 2007/08/07 15:18:30 rfiedler
643 ! Bug fix: Wrong loop limit in RFLU_EnforceHeatFlux.
644 !
645 ! Revision 1.7 2006/08/19 15:39:19 mparmar
646 ! Renamed bGradFace, removed bf2bg, used GRBF_ for boundary grad arrays
647 !
648 ! Revision 1.6 2006/04/07 15:19:21 haselbac
649 ! Removed tabs
650 !
651 ! Revision 1.5 2005/10/16 18:03:37 haselbac
652 ! Bug fix: Missing definition of pGrid
653 !
654 ! Revision 1.4 2005/10/16 17:16:42 haselbac
655 ! Bug fix: distrib set in wrong place
656 !
657 ! Revision 1.3 2005/10/14 14:08:41 haselbac
658 ! Added RFLU_EnforceHeatFlux - temporary until have proper constr reconstr
659 !
660 ! Revision 1.2 2005/10/05 14:14:04 haselbac
661 ! No longer distinguish between isothermal and adiabatic walls
662 !
663 ! Revision 1.1 2005/05/16 20:36:29 haselbac
664 ! Initial revision
665 !
666 ! ******************************************************************************
667 
668 
669 
670 
671 
672 
673 
674 
675 
676 
677 
subroutine, public rflu_viscousfluxespatches(pRegion, tv, tvIndxVisc, tvIndxCond)
subroutine registerfunction(global, funName, fileName)
Definition: ModError.F90:449
subroutine, public rflu_enforceheatflux(pRegion, tv, tvIndxCond)
subroutine, public rflu_interpcells2face(pRegion, ifg, src, dst)
*********************************************************************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
Definition: roccomf90.h:20
subroutine errorstop(global, errorCode, errorLine, addMessage)
Definition: ModError.F90:483
subroutine, public rflu_interpcells2facepatch(pRegion, pPatch, ifl, src, dst)
subroutine deregisterfunction(global)
Definition: ModError.F90:469
subroutine, public rflu_viscousfluxes(pRegion, tv, tvIndxVisc, tvIndxCond)