63 CHARACTER(CHRLEN) :: RCSIdentString = &
64 '$RCSfile: RFLU_ModExactFlow.F90,v $ $Revision: 1.10 $'
115 REAL(RFREAL),
INTENT(IN) ::
x,
y,
z
116 REAL(RFREAL),
INTENT(OUT) ::
d,p,u,
v,w
123 REAL(RFREAL) ::
r,ro,theta,vr
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)
193 SUBROUTINE rflu_computeexactflowpacoust(global,x,y,z,t,L,ro,iBc,im,in,iq, &
194 etaqm,omega,dtot,ptot,atot,const, &
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
218 REAL(RFREAL) :: cimt,cinz,cot,dummyreal,jm,jmd,
r,simt,sinz,sot,
term, &
228 CALL
rflu_jyndd(im,etaqm*
r/ro,jm,jmd,dummyreal,dummyreal,dummyreal, &
234 cinz =
cos(in*global%pi*
z/l)
235 sinz =
sin(in*global%pi*
z/l)
240 term = const/(dtot*omega)
243 p = const*jm*cimt*sinz*cot
244 ELSE IF ( ibc == 1 )
THEN
245 p = const*jm*cimt*cinz*cot
250 d = dtot + p/atot*atot
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
267 u = ur*
cos(theta) - ut*
sin(theta)
268 v = ur*
sin(theta) + ut*
cos(theta)
322 REAL(RFREAL),
INTENT(IN) :: dinc,height,ptot,vinj,
x,
y
323 REAL(RFREAL),
INTENT(OUT) ::
d,p,u,
v,w
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)
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))
399 REAL(RFREAL),
INTENT(IN) :: ptot,rgas,ttot,
x,
y
400 REAL(RFREAL),
INTENT(OUT) ::
d,p,u,
v,w
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
423 qbarmax =
sqrt(5.0_rfreal)
434 abar =
sqrt(1.0_rfreal - 0.2_rfreal*qbar**2)
435 rhobar = abar**5.0_rfreal
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))
444 f = (
x - 0.5_rfreal*
j)**2 +
y**2 - 1.0_rfreal/(4.0_rfreal*rhobar**2*qbar**4)
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)
467 qbar =
min(qbar,qbarmax)
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)))
483 p = ptot*rhobar**1.4_rfreal
484 t = ttot*rhobar**0.4_rfreal
555 REAL(RFREAL),
INTENT(IN) :: ggas,mi,ptot,rgas,ri,ttot,
x,
y
556 REAL(RFREAL),
INTENT(OUT) ::
d,p,u,
v,w
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))
634 INTEGER,
INTENT(IN) :: ivar
635 REAL(RFREAL),
INTENT(IN) ::
x,
y,
z
636 REAL(RFREAL),
INTENT(OUT) :: gx,gy,gz,var
642 REAL(RFREAL) ::
a,
b,
c
648 a = 1 + (ivar-1)*(zcoord-xcoord)
698 SUBROUTINE rflu_setexactflowtrig(global,nx,ny,nz,x,y,z,iVar,var,gx,gy,gz)
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
719 REAL(RFREAL) ::
a,
b,
c
subroutine, public rflu_computeexactflowculick(global, x, y, z, d, u, v, w, p)
subroutine, public rflu_jyndd(N, X, BJN, DJN, FJN, BYN, DYN, FYN)
static SURF_BEGIN_NAMESPACE double sign(double x)
void int int REAL REAL * y
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)
real(rfreal) function mixtperf_p_ddogpo(D, Do, G, Po)
real(rfreal) function mixtperf_d_prt(P, R, T)
*********************************************************************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
void int int int REAL REAL REAL * z
real(rfreal) function mixtperf_t_dpr(D, P, R)
real(rfreal) function mixtperf_d_dogma(Do, G, Ma)
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)
real(rfreal) function mixtperf_c_grt(G, R, T)
subroutine, public rflu_setexactflowtrig(global, nx, ny, nz, x, y, z, iVar, var, gx, gy, gz)
unsigned char alpha() const
subroutine, public rflu_setexactflowlinear(x, y, z, iVar, var, gx, gy, gz)
CImg< T > & atan2(const CImg< t > &img)
Compute the arc-tangent of each pixel.
real(rfreal) function mixtperf_p_gmapo(G, Ma, Po)
subroutine, public rflu_computeexactflowproudman(global, x, y, height, dInc, vInj, pTot, d, u, v, w, p)