Rocstar  1.0
Rocstar multiphysics simulation application
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
RFLU_ModExactFlow.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: Suite of routines to compute exact flow solutions.
26 !
27 ! Description: None.
28 !
29 ! Notes:
30 ! 1. Collected routines in single module because computation of exact
31 ! solutions is needed in at least three places: initialization of
32 ! solution, setting of boundary profiles, and computation of errors.
33 !
34 ! ******************************************************************************
35 !
36 ! $Id: RFLU_ModExactFlow.F90,v 1.10 2008/12/06 08:44:21 mtcampbe Exp $
37 !
38 ! Copyright: (c) 2004-2006 by the University of Illinois
39 !
40 ! ******************************************************************************
41 
43 
44  USE modparameters
45  USE moddatatypes
46  USE modglobal, ONLY: t_global
47 
48  IMPLICIT NONE
49 
50  PRIVATE
51  PUBLIC :: rflu_computeexactflowculick, &
58 
59 ! ******************************************************************************
60 ! Declarations and definitions
61 ! ******************************************************************************
62 
63  CHARACTER(CHRLEN) :: RCSIdentString = &
64  '$RCSfile: RFLU_ModExactFlow.F90,v $ $Revision: 1.10 $'
65 
66 ! ******************************************************************************
67 ! Routines
68 ! ******************************************************************************
69 
70  CONTAINS
71 
72 
73 
74 
75 
76 ! ******************************************************************************
77 !
78 ! Purpose: Compute exact solution for Culick flow.
79 !
80 ! Description: None.
81 !
82 ! Input:
83 ! global Pointer to global data
84 ! x x-coordinate
85 ! y y-coordinate
86 ! z z-coordinate
87 !
88 ! Output:
89 ! d Density
90 ! u x-velocity component
91 ! v y-velocity component
92 ! w z-velocity component
93 ! p Static pressure
94 !
95 ! Notes:
96 ! 1. Assume cylindrical domain with axis along x-coordinate direction.
97 ! 2. Assume radius equal to 0.01.
98 ! 3. Assume injection velocity equal to unity.
99 ! 4. Total pressure is not uniform but assumed so for now.
100 !
101 ! ******************************************************************************
102 
103  SUBROUTINE rflu_computeexactflowculick(global,x,y,z,d,u,v,w,p)
104 
105  IMPLICIT NONE
106 
107 ! ******************************************************************************
108 ! Declarations and definitions
109 ! ******************************************************************************
110 
111 ! ==============================================================================
112 ! Arguments
113 ! ==============================================================================
114 
115  REAL(RFREAL), INTENT(IN) :: x,y,z
116  REAL(RFREAL), INTENT(OUT) :: d,p,u,v,w
117  TYPE(t_global), POINTER :: global
118 
119 ! ==============================================================================
120 ! Locals
121 ! ==============================================================================
122 
123  REAL(RFREAL) :: r,ro,theta,vr
124 
125 ! ******************************************************************************
126 ! Start, compute exact solution
127 ! ******************************************************************************
128 
129  r = sqrt(y*y + z*z)
130  ro = 0.01_rfreal
131  theta = atan2(z,y)
132 
133  d = 1.0_rfreal
134 
135  vr = -sin(0.5_rfreal*global%pi*(r/ro)**2)/(r/ro)
136  u = global%pi*x/ro*cos(0.5_rfreal*global%pi*(r/ro)**2)
137  v = vr*cos(theta)
138  w = vr*sin(theta)
139 
140  p = 1.0e+5 ! TEMPORARY
141 
142 ! ******************************************************************************
143 ! End
144 ! ******************************************************************************
145 
146  END SUBROUTINE rflu_computeexactflowculick
147 
148 
149 
150 
151 
152 
153 ! ******************************************************************************
154 !
155 ! Purpose: Compute exact solution for pipe acoustics.
156 !
157 ! Description: None.
158 !
159 ! Input:
160 ! global Pointer to global data
161 ! x x-coordinate
162 ! y y-coordinate
163 ! z z-coordinate
164 ! t time
165 ! L Length of pipe
166 ! ro Outer radius of pipe
167 ! iBc Type of boundary condition in axial direction (0 = zero
168 ! pressure disturbance, 1 = zero pressure disturbance gradient)
169 ! im Index of mode in circumferential direction
170 ! in Index of mode in axial direction
171 ! iq Index of mode in radial direction
172 ! etaqm q-th root of m-th order Bessel function of first kind
173 ! omega Frequency
174 ! dTot Total density
175 ! pTot Total pressure
176 ! aTot Total speed of sound
177 ! const Constant (appears in theoretical solution, but is not equal
178 ! to amplitude)
179 !
180 ! Output:
181 ! d Density
182 ! u x-velocity component
183 ! v y-velocity component
184 ! w z-velocity component
185 ! p Static pressure
186 !
187 ! Notes:
188 ! 1. Exact solution assumes that z-axis corresponds to axis of symmetry of
189 ! pipe.
190 !
191 ! ******************************************************************************
192 
193  SUBROUTINE rflu_computeexactflowpacoust(global,x,y,z,t,L,ro,iBc,im,in,iq, &
194  etaqm,omega,dtot,ptot,atot,const, &
195  d,u,v,w,p)
196 
197  USE rflu_modbessel
198 
199  IMPLICIT NONE
200 
201 ! ******************************************************************************
202 ! Declarations and definitions
203 ! ******************************************************************************
204 
205 ! ==============================================================================
206 ! Arguments
207 ! ==============================================================================
208 
209  INTEGER, INTENT(IN) :: ibc,im,in,iq
210  REAL(RFREAL), INTENT(IN) :: atot,const,dtot,etaqm,l,omega,ptot,ro,t,x,y,z
211  REAL(RFREAL), INTENT(OUT) :: d,p,u,v,w
212  TYPE(t_global), POINTER :: global
213 
214 ! ==============================================================================
215 ! Locals
216 ! ==============================================================================
217 
218  REAL(RFREAL) :: cimt,cinz,cot,dummyreal,jm,jmd,r,simt,sinz,sot,term, &
219  theta,ur,ut,uz
220 
221 ! ******************************************************************************
222 ! Start, compute exact solution
223 ! ******************************************************************************
224 
225  r = sqrt(x*x + y*y)
226  theta = atan2(y,x)
227 
228  CALL rflu_jyndd(im,etaqm*r/ro,jm,jmd,dummyreal,dummyreal,dummyreal, &
229  dummyreal)
230 
231  cimt = cos(im*theta)
232  simt = sin(im*theta)
233 
234  cinz = cos(in*global%pi*z/l)
235  sinz = sin(in*global%pi*z/l)
236 
237  cot = cos(omega*t)
238  sot = sin(omega*t)
239 
240  term = const/(dtot*omega)
241 
242  IF ( ibc == 0 ) THEN
243  p = const*jm*cimt*sinz*cot
244  ELSE IF ( ibc == 1 ) THEN
245  p = const*jm*cimt*cinz*cot
246  ELSE
247  p = 0.0_rfreal
248  END IF ! iBc
249 
250  d = dtot + p/atot*atot
251  p = ptot + p
252 
253  IF ( ibc == 0 ) THEN
254  ur = - term *jmd*(etaqm/ro)*cimt*sinz *sot
255  ut = im*term/r*jm *simt*sinz *sot
256  uz = - term *jm *cimt*cinz*(in*global%pi/l)*sot
257  ELSE IF ( ibc == 1 ) THEN
258  ur = - term *jmd*(etaqm/ro)*cimt*cinz *sot
259  ut = im*term/r*jm *simt*cinz *sot
260  uz = term *jm *cimt*sinz*(in*global%pi/l)*sot
261  ELSE
262  ur = 0.0_rfreal
263  ut = 0.0_rfreal
264  uz = 0.0_rfreal
265  END IF ! iBc
266 
267  u = ur*cos(theta) - ut*sin(theta)
268  v = ur*sin(theta) + ut*cos(theta)
269  w = uz
270 
271 ! ******************************************************************************
272 ! End
273 ! ******************************************************************************
274 
275  END SUBROUTINE rflu_computeexactflowpacoust
276 
277 
278 
279 
280 
281 
282 ! ******************************************************************************
283 !
284 ! Purpose: Compute exact solution for Proudman-Culick flow.
285 !
286 ! Description: None.
287 !
288 ! Input:
289 ! global Pointer to global data
290 ! x x-coordinate
291 ! y y-coordinate
292 ! height Height of domain
293 ! dInc Density
294 ! vInj Injection velocity
295 ! pTot Total pressure at (x,y) = (0,0)
296 !
297 ! Output:
298 ! d Density
299 ! u x-velocity component
300 ! v y-velocity component
301 ! w z-velocity component
302 ! p Static pressure
303 !
304 ! Notes:
305 ! 1. Total pressure is not uniform!
306 !
307 ! ******************************************************************************
308 
309  SUBROUTINE rflu_computeexactflowproudman(global,x,y,height,dInc,vInj,pTot, &
310  d,u,v,w,p)
311 
312  IMPLICIT NONE
313 
314 ! ******************************************************************************
315 ! Declarations and definitions
316 ! ******************************************************************************
317 
318 ! ==============================================================================
319 ! Arguments
320 ! ==============================================================================
321 
322  REAL(RFREAL), INTENT(IN) :: dinc,height,ptot,vinj,x,y
323  REAL(RFREAL), INTENT(OUT) :: d,p,u,v,w
324  TYPE(t_global), POINTER :: global
325 
326 ! ******************************************************************************
327 ! Start, compute exact solution
328 ! ******************************************************************************
329 
330  u = -0.5_rfreal*global%pi*x/height*vinj*cos(0.5_rfreal*global%pi*y/height)
331  v = vinj*sin(0.5_rfreal*global%pi*y/height)
332 
333  w = 0.0_rfreal
334 
335  d = dinc
336  p = ptot - 0.25_rfreal*vinj**2*(1.0_rfreal &
337  + 0.5_rfreal*(global%pi*x/height)**2 &
338  - cos(global%pi*y/height))
339 
340 ! ******************************************************************************
341 ! End
342 ! ******************************************************************************
343 
344  END SUBROUTINE rflu_computeexactflowproudman
345 
346 
347 
348 
349 
350 
351 ! ******************************************************************************
352 !
353 ! Purpose: Compute exact solution for Ringleb flow.
354 !
355 ! Description: The solution to the Ringleb flow is given in terms of qBar
356 ! (normalized velocity magnitude) and the k (streamline constant). It is
357 ! not possible to determine these as an explicit function of x and y.
358 ! Instead, given x and y, qBar and k are determined iteratively. Once
359 ! qBar and k are known, the solution can be computed in terms of the
360 ! primitive variables.
361 !
362 ! Input:
363 ! x x-coordinate
364 ! y y-coordinate
365 ! rGas Gas constant
366 ! pTot Total pressure
367 ! tTot Total temperature
368 !
369 ! Output:
370 ! d Density
371 ! u x-velocity component
372 ! v y-velocity component
373 ! w z-velocity component
374 ! p Static pressure
375 !
376 ! Notes:
377 ! 1. This routine assumes a perfect gas and that the ratio of specific heats
378 ! is equal to 1.4.
379 ! 2. Depending on how the geometry is defined (which values of qBar and k
380 ! were chosen), it may become necessary to alter the initial guess for
381 ! qBar.
382 !
383 ! ******************************************************************************
384 
385  SUBROUTINE rflu_computeexactflowringleb(x,y,rGas,pTot,tTot,d,u,v,w,p)
386 
388 
389  IMPLICIT NONE
390 
391 ! ******************************************************************************
392 ! Declarations and definitions
393 ! ******************************************************************************
394 
395 ! ==============================================================================
396 ! Arguments
397 ! ==============================================================================
398 
399  REAL(RFREAL), INTENT(IN) :: ptot,rgas,ttot,x,y
400  REAL(RFREAL), INTENT(OUT) :: d,p,u,v,w
401 
402 ! ==============================================================================
403 ! Locals
404 ! ==============================================================================
405 
406  CHARACTER(CHRLEN) :: rcsidentstring
407  INTEGER :: cntr,cntrmax
408  REAL(RFREAL) :: a,abar,atot,alpha,dabardqbar,dfdqbar,djdabar,djdqbar, &
409  dqbar,drhobardqbar,f,j,k,qbar,qbarmax,rhobar,t,tol
410 
411 ! ******************************************************************************
412 ! Start, compute exact solution
413 ! ******************************************************************************
414 
415 ! ==============================================================================
416 ! Determine solution in terms of qBar and k with Newton-Raphson method
417 ! ==============================================================================
418 
419  cntr = 0
420  cntrmax = 100 ! Maximum number of Newton-Raphson steps
421 
422  qbar = 0.3_rfreal ! Initial guess for qBar
423  qbarmax = sqrt(5.0_rfreal) ! Physically possible maximum value for qBar
424 
425  tol = 1.0e-16_rfreal ! Convergence tolerance
426 
427 ! -------------------------------------------------------------------------------
428 ! Loop over iterations
429 ! -------------------------------------------------------------------------------
430 
431  DO
432  cntr = cntr + 1
433 
434  abar = sqrt(1.0_rfreal - 0.2_rfreal*qbar**2)
435  rhobar = abar**5.0_rfreal
436 
437  j = 1.0_rfreal/abar &
438  + 1.0_rfreal/(3.0_rfreal*abar**3) &
439  + 1.0_rfreal/(5.0_rfreal*abar**5) &
440  - 0.5_rfreal*log((1.0_rfreal+abar)/(1.0_rfreal-abar))
441 
442 ! --- Compute function value ---------------------------------------------------
443 
444  f = (x - 0.5_rfreal*j)**2 + y**2 - 1.0_rfreal/(4.0_rfreal*rhobar**2*qbar**4)
445 
446 ! --- Compute derivative -------------------------------------------------------
447 
448  drhobardqbar = -qbar*abar**3
449  djdabar = -1.0_rfreal/abar**2 &
450  -1.0_rfreal/abar**4 &
451  -1.0_rfreal/abar**6 &
452  -1.0_rfreal/((1.0_rfreal+abar)*(1.0_rfreal-abar))
453  dabardqbar = -0.2_rfreal*qbar/abar
454  djdqbar = djdabar*dabardqbar
455  dfdqbar = -(x - 0.5_rfreal*j)*djdqbar &
456  + 0.5_rfreal/(rhobar**3*qbar**4)*drhobardqbar &
457  + 1.0_rfreal/(rhobar**2*qbar**5)
458 
459 ! --- Update -------------------------------------------------------------------
460 
461  dqbar = -f/dfdqbar
462 
463  qbar = qbar + dqbar
464 
465 ! --- Limit to physically possible maximum -------------------------------------
466 
467  qbar = min(qbar,qbarmax)
468 
469 ! --- Convergence check and update k -------------------------------------------
470 
471  IF ( (abs(dqbar) < tol ) .OR. (cntr == cntrmax) ) THEN
472  k = sqrt(2.0_rfreal/(1.0_rfreal/qbar**2 &
473  - 2.0_rfreal*rhobar*(x - 0.5_rfreal*j)))
474 
475  EXIT
476  END IF ! ABS(dqBar)
477  END DO ! <empty>
478 
479 ! ==============================================================================
480 ! Determine solution in terms of primitive variables
481 ! ==============================================================================
482 
483  p = ptot*rhobar**1.4_rfreal
484  t = ttot*rhobar**0.4_rfreal
485  d = mixtperf_d_prt(p,rgas,t)
486  atot = mixtperf_c_grt(1.4_rfreal,rgas,ttot)
487  a = atot*abar
488 
489  alpha = asin(min(1.0_rfreal,qbar/k))
490  u = atot*qbar*cos(alpha)*sign(1.0_rfreal,y)
491  v = atot*qbar*sin(alpha)
492  w = 0.0_rfreal
493 
494 ! ******************************************************************************
495 ! End
496 ! ******************************************************************************
497 
498  END SUBROUTINE rflu_computeexactflowringleb
499 
500 
501 
502 
503 
504 
505 
506 
507 ! ******************************************************************************
508 !
509 ! Purpose: Compute exact solution for supersonic vortex.
510 !
511 ! Description: None.
512 !
513 ! Input:
514 ! x x-coordinate
515 ! y y-coordinate
516 ! gGas ratio of specific heats
517 ! rGas Gas constant
518 ! ri Inner radius
519 ! Mi Mach number at inner radius
520 ! pTot Total pressure
521 ! tTot Total temperature
522 !
523 ! Output:
524 ! d Density
525 ! u x-velocity component
526 ! v y-velocity component
527 ! w z-velocity component
528 ! p Static pressure
529 !
530 ! Notes:
531 ! 1. This routine assumes a perfect gas.
532 !
533 ! ******************************************************************************
534 
535  SUBROUTINE rflu_computeexactflowssvortex(x,y,gGas,rGas,ri,Mi,pTot,tTot, &
536  d,u,v,w,p)
537 
538  USE modinterfaces, ONLY: mixtperf_c_grt, &
540  mixtperf_d_prt, &
544 
545  IMPLICIT NONE
546 
547 ! ******************************************************************************
548 ! Declarations and definitions
549 ! ******************************************************************************
550 
551 ! ==============================================================================
552 ! Arguments
553 ! ==============================================================================
554 
555  REAL(RFREAL), INTENT(IN) :: ggas,mi,ptot,rgas,ri,ttot,x,y
556  REAL(RFREAL), INTENT(OUT) :: d,p,u,v,w
557 
558 ! ==============================================================================
559 ! Locals
560 ! ==============================================================================
561 
562  REAL(RFREAL) :: ai,alpha,di,dtot,pi,r,term,ti,vi
563 
564 ! ******************************************************************************
565 ! Start, compute exact solution
566 ! ******************************************************************************
567 
568  dtot = mixtperf_d_prt(ptot,rgas,ttot)
569 
570  di = mixtperf_d_dogma(dtot,ggas,mi)
571  pi = mixtperf_p_gmapo(ggas,mi,ptot)
572  ti = mixtperf_t_dpr(di,pi,rgas)
573  ai = mixtperf_c_grt(ggas,rgas,ti)
574  vi = mi*ai
575 
576  r = sqrt(x*x + y*y)
577  alpha = atan(y/x)
578 
579  term = 1.0_rfreal - (ri/r)**2
580  term = 1.0_rfreal + 0.5_rfreal*(ggas - 1.0_rfreal)*mi*mi*term
581  d = di*term**(1.0_rfreal/(ggas - 1.0_rfreal))
582  p = mixtperf_p_ddogpo(d,dtot,ggas,ptot)
583 
584  u = vi*ri/r*sin(alpha)
585  v = -vi*ri/r*cos(alpha)
586  w = 0.0_rfreal
587 
588 ! ******************************************************************************
589 ! End
590 ! ******************************************************************************
591 
592  END SUBROUTINE rflu_computeexactflowssvortex
593 
594 
595 
596 
597 
598 
599 
600 ! ******************************************************************************
601 !
602 ! Purpose: Set linear variable behavior.
603 !
604 ! Description: None.
605 !
606 ! Input:
607 ! x x-coordinate
608 ! y y-coordinate
609 ! z z-coordinate
610 ! iVar Variable index
611 !
612 ! Output:
613 ! var Variable
614 ! gx x-component of gradient
615 ! gy y-component of gradient
616 ! gz z-component of gradient
617 !
618 ! Notes: None.
619 !
620 ! ******************************************************************************
621 
622  SUBROUTINE rflu_setexactflowlinear(x,y,z,iVar,var,gx,gy,gz)
623 
624  IMPLICIT NONE
625 
626 ! ******************************************************************************
627 ! Declarations and definitions
628 ! ******************************************************************************
629 
630 ! ==============================================================================
631 ! Arguments
632 ! ==============================================================================
633 
634  INTEGER, INTENT(IN) :: ivar
635  REAL(RFREAL), INTENT(IN) :: x,y,z
636  REAL(RFREAL), INTENT(OUT) :: gx,gy,gz,var
637 
638 ! ==============================================================================
639 ! Locals
640 ! ==============================================================================
641 
642  REAL(RFREAL) :: a,b,c
643 
644 ! ******************************************************************************
645 ! Start, set exact solution
646 ! ******************************************************************************
647 
648  a = 1 + (ivar-1)*(zcoord-xcoord)
649  b = a + 1
650  c = a + 2
651 
652  var = a*x + b*y + c*z
653 
654  gx = a
655  gy = b
656  gz = c
657 
658 ! ******************************************************************************
659 ! End
660 ! ******************************************************************************
661 
662  END SUBROUTINE rflu_setexactflowlinear
663 
664 
665 
666 
667 
668 
669 
670 
671 ! ******************************************************************************
672 !
673 ! Purpose: Set trigonometric variable behavior.
674 !
675 ! Description: None.
676 !
677 ! Input:
678 ! global Pointer to globa data
679 ! nx Wave number for x-direction
680 ! ny Wave number for y-direction
681 ! nz Wave number for z-direction
682 ! x x-coordinate
683 ! y y-coordinate
684 ! z z-coordinate
685 ! iVar Variable index
686 !
687 ! Output:
688 ! var Variable
689 ! gx x-component of gradient
690 ! gy y-component of gradient
691 ! gz z-component of gradient
692 !
693 ! Notes:
694 ! 1. At present, do not make use of iVar.
695 !
696 ! ******************************************************************************
697 
698  SUBROUTINE rflu_setexactflowtrig(global,nx,ny,nz,x,y,z,iVar,var,gx,gy,gz)
699 
700  IMPLICIT NONE
701 
702 ! ******************************************************************************
703 ! Declarations and definitions
704 ! ******************************************************************************
705 
706 ! ==============================================================================
707 ! Arguments
708 ! ==============================================================================
709 
710  INTEGER, INTENT(IN) :: ivar
711  REAL(RFREAL), INTENT(IN) :: nx,ny,nz,x,y,z
712  REAL(RFREAL), INTENT(OUT) :: gx,gy,gz,var
713  TYPE(t_global), POINTER :: global
714 
715 ! ==============================================================================
716 ! Locals
717 ! ==============================================================================
718 
719  REAL(RFREAL) :: a,b,c
720 
721 ! ******************************************************************************
722 ! Start, set exact solution
723 ! ******************************************************************************
724 
725  a = nx*global%pi
726  b = ny*global%pi
727  c = nz*global%pi
728 
729  var = cos(a*x)*sin(b*y)*cos(c*z)
730 
731  gx = -a*sin(a*x)*sin(b*y)*cos(c*z)
732  gy = b*cos(a*x)*cos(b*y)*cos(c*z)
733  gz = -c*cos(a*x)*sin(b*y)*sin(c*z)
734 
735 ! ******************************************************************************
736 ! End
737 ! ******************************************************************************
738 
739  END SUBROUTINE rflu_setexactflowtrig
740 
741 
742 
743 
744 
745 
746 ! ******************************************************************************
747 ! End
748 ! ******************************************************************************
749 
750 END MODULE rflu_modexactflow
751 
752 
753 ! ******************************************************************************
754 !
755 ! RCS Revision history:
756 !
757 ! $Log: RFLU_ModExactFlow.F90,v $
758 ! Revision 1.10 2008/12/06 08:44:21 mtcampbe
759 ! Updated license.
760 !
761 ! Revision 1.9 2008/11/19 22:17:32 mtcampbe
762 ! Added Illinois Open Source License/Copyright
763 !
764 ! Revision 1.8 2006/04/13 18:07:34 haselbac
765 ! Added routine for Culick flow
766 !
767 ! Revision 1.7 2006/04/07 15:19:19 haselbac
768 ! Removed tabs
769 !
770 ! Revision 1.6 2006/01/06 22:10:26 haselbac
771 ! Added routines for linear and trig solution for grad testing
772 !
773 ! Revision 1.5 2005/04/29 12:54:36 haselbac
774 ! Adapted routine for exact pipe acoust solution to accept time argument
775 !
776 ! Revision 1.4 2005/04/20 14:41:53 haselbac
777 ! Bug fix and extensions for pipe acoustics case
778 !
779 ! Revision 1.3 2005/03/31 17:02:44 haselbac
780 ! Fixed bug in initialization of pressure for ONERA C0 case
781 !
782 ! Revision 1.2 2005/03/15 20:44:44 haselbac
783 ! Added routine to compute exact solution for pipe acoustics
784 !
785 ! Revision 1.1 2004/07/06 15:14:27 haselbac
786 ! Initial revision
787 !
788 ! ******************************************************************************
789 
790 
791 
792 
793 
794 
subroutine, public rflu_computeexactflowculick(global, x, y, z, d, u, v, w, p)
unsigned char r() const
Definition: Color.h:68
subroutine, public rflu_jyndd(N, X, BJN, DJN, FJN, BYN, DYN, FYN)
static SURF_BEGIN_NAMESPACE double sign(double x)
const NT & d
j indices k indices k
Definition: Indexing.h:6
void int int REAL REAL * y
Definition: read.cpp:74
subroutine, public rflu_computeexactflowpacoust(global, x, y, z, t, L, ro, iBc, im, in, iq, etaqm, omega, dTot, pTot, aTot, const, d, u, v, w, p)
unsigned char b() const
Definition: Color.h:70
real(rfreal) function mixtperf_p_ddogpo(D, Do, G, Po)
Definition: MixtPerf_P.F90:85
real(rfreal) function mixtperf_d_prt(P, R, T)
Definition: MixtPerf_D.F90:71
double sqrt(double d)
Definition: double.h:73
RT c() const
Definition: Line_2.h:150
*********************************************************************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
static const double pi
Definition: smooth_medial.C:43
void int int int REAL REAL REAL * z
Definition: write.cpp:76
NT & sin
void int int REAL * x
Definition: read.cpp:74
real(rfreal) function mixtperf_t_dpr(D, P, R)
Definition: MixtPerf_T.F90:85
real(rfreal) function mixtperf_d_dogma(Do, G, Ma)
Definition: MixtPerf_D.F90:55
subroutine, public rflu_computeexactflowringleb(x, y, rGas, pTot, tTot, d, u, v, w, p)
subroutine, public rflu_computeexactflowssvortex(x, y, gGas, rGas, ri, Mi, pTot, tTot, d, u, v, w, p)
Vector_n min(const Array_n_const &v1, const Array_n_const &v2)
Definition: Vector_n.h:346
real(rfreal) function mixtperf_c_grt(G, R, T)
Definition: MixtPerf_C.F90:86
j indices j
Definition: Indexing.h:6
subroutine, public rflu_setexactflowtrig(global, nx, ny, nz, x, y, z, iVar, var, gx, gy, gz)
unsigned char alpha() const
Definition: Color.h:75
subroutine, public rflu_setexactflowlinear(x, y, z, iVar, var, gx, gy, gz)
NT & cos
CImg< T > & atan2(const CImg< t > &img)
Compute the arc-tangent of each pixel.
Definition: CImg.h:12671
RT a() const
Definition: Line_2.h:140
real(rfreal) function mixtperf_p_gmapo(G, Ma, Po)
Definition: MixtPerf_P.F90:69
subroutine, public rflu_computeexactflowproudman(global, x, y, height, dInc, vInj, pTot, d, u, v, w, p)