77 TYPE(t_region
),
POINTER :: pregion
83 CHARACTER(CHRLEN) :: errorstring,rcsidentstring
85 REAL(RFREAL) :: betah,cpgas,
d,dinc,ggas,height,mach,mi,minj,p,ptot,rgas, &
86 ri,t,ttot,u,
v,vinj,vmag,w,
x,
y
88 TYPE(t_grid),
POINTER :: pgrid
89 TYPE(t_patch),
POINTER :: ppatch
95 rcsidentstring =
'$RCSfile: RFLU_InitBcDataHardCode.F90,v $ $Revision: 1.7 $'
97 global => pregion%global
100 'RFLU_InitBcDataHardCode.F90')
102 IF ( global%verbLevel > verbose_none )
THEN
103 WRITE(stdout,
'(A,1X,A)') solver_name, &
104 'Initializing boundary-condition data from hard code...'
106 IF ( global%verbLevel > verbose_low )
THEN
107 WRITE(stdout,
'(A,3X,A,A)') solver_name,
'Case: ',trim(global%casename)
115 pgrid => pregion%grid
122 ggas = global%refGamma
129 SELECT CASE ( global%casename )
137 CASE (
"onera_c0",
"onera_c0_2d_100x50" )
140 height = minval(pgrid%xyz(ycoord,1:pgrid%nVertTot))
142 DO ipatch = 1,pgrid%nPatches
143 ppatch => pregion%patches(ipatch)
145 IF ( ppatch%bcType == bc_injection )
THEN
146 IF ( ppatch%mixt%distrib == bcdat_distrib )
THEN
147 DO ifl = 1,ppatch%nBFaces
148 x = ppatch%fc(xcoord,ifl)
149 y = ppatch%fc(ycoord,ifl)
156 ppatch%mixt%vals(bcdat_inject_mfrate,ifl) =
d*
v
157 ppatch%mixt%vals(bcdat_inject_temp ,ifl) = t
160 WRITE(errorstring,
'(A,1X,I3)')
'Patch:',ipatch
161 CALL
errorstop(global,err_distrib_invalid,__line__, &
164 ELSE IF ( ppatch%bcType == bc_outflow )
THEN
165 IF ( ppatch%mixt%distrib == bcdat_distrib )
THEN
166 DO ifl = 1,ppatch%nBFaces
167 x = ppatch%fc(xcoord,ifl)
168 y = ppatch%fc(ycoord,ifl)
173 ppatch%mixt%vals(bcdat_outflow_press,ifl) = p
176 WRITE(errorstring,
'(A,1X,I3)')
'Patch:',ipatch
177 CALL
errorstop(global,err_distrib_invalid,__line__, &
191 DO ipatch = 1,pgrid%nPatches
192 ppatch => pregion%patches(ipatch)
194 IF ( ppatch%bcType == bc_inflow_totang )
THEN
195 IF ( ppatch%mixt%distrib == bcdat_distrib )
THEN
196 DO ifl = 1,ppatch%nBFaces
197 x = ppatch%fc(xcoord,ifl)
198 y = ppatch%fc(ycoord,ifl)
204 ppatch%mixt%vals(bcdat_inflow_ptot ,ifl) = ptot
205 ppatch%mixt%vals(bcdat_inflow_ttot ,ifl) = ttot
206 ppatch%mixt%vals(bcdat_inflow_betah,ifl) = betah
207 ppatch%mixt%vals(bcdat_inflow_betav,ifl) = 0.0_rfreal
210 WRITE(errorstring,
'(A,1X,I3)')
'Patch:',ipatch
211 CALL
errorstop(global,err_distrib_invalid,__line__, &
214 ELSE IF ( ppatch%bcType == bc_outflow )
THEN
215 IF ( ppatch%mixt%distrib == bcdat_distrib )
THEN
216 DO ifl = 1,ppatch%nBFaces
217 x = ppatch%fc(xcoord,ifl)
218 y = ppatch%fc(ycoord,ifl)
222 ppatch%mixt%vals(bcdat_outflow_press,ifl) = p
225 WRITE(errorstring,
'(A,1X,I3)')
'Patch:',ipatch
226 CALL
errorstop(global,err_distrib_invalid,__line__, &
237 CASE (
"ssvorth20x5l1" ,
"ssvortp20x5l1", &
238 "ssvorth20x5l3" ,
"ssvortp20x5l3", &
239 "ssvorth40x10l1" ,
"ssvortp40x10l1", &
240 "ssvorth40x10l3" ,
"ssvortp40x10l3", &
241 "ssvorth80x20l1" ,
"ssvortp80x20l1", &
242 "ssvorth80x20l3" ,
"ssvortp80x20l3", &
243 "ssvorth160x40l1" ,
"ssvortp160x40l1", &
244 "ssvorth160x40l3" ,
"ssvortp160x40l3", &
245 "ssvorth320x80l1" ,
"ssvortp320x80l1", &
246 "ssvorth320x80l3" ,
"ssvortp320x80l3", &
247 "ssvorth640x160l1",
"ssvortp640x160l1", &
248 "ssvorth640x160l3",
"ssvortp640x160l3" )
251 DO ipatch = 1,pgrid%nPatches
252 ppatch => pregion%patches(ipatch)
254 IF ( ppatch%bcType == bc_inflow_totang )
THEN
255 IF ( ppatch%mixt%distrib == bcdat_distrib )
THEN
256 DO ifl = 1,ppatch%nBFaces
257 x = ppatch%fc(xcoord,ifl)
258 y = ppatch%fc(ycoord,ifl)
267 ppatch%mixt%vals(bcdat_inflow_ptot ,ifl) = ptot
268 ppatch%mixt%vals(bcdat_inflow_ttot ,ifl) = ttot
269 ppatch%mixt%vals(bcdat_inflow_betah,ifl) = betah
270 ppatch%mixt%vals(bcdat_inflow_betav,ifl) = 0.0_rfreal
271 ppatch%mixt%vals(bcdat_inflow_mach ,ifl) = mach
274 WRITE(errorstring,
'(A,1X,I3)')
'Patch:',ipatch
275 CALL
errorstop(global,err_distrib_invalid,__line__, &
286 CALL
errorstop(global,err_reached_default,__line__)
293 IF ( global%verbLevel > verbose_none )
THEN
294 WRITE(stdout,
'(A,1X,A)') solver_name, &
295 'Initializing boundary-condition data from hard code done.'
subroutine, public rflu_getparamshardcodessvortex(ri, Mi, pTot, tTot)
void int int REAL REAL * y
real(rfreal) function mixtperf_c_dgp(D, G, P)
subroutine registerfunction(global, funName, fileName)
real(rfreal) function mixtperf_r_cpg(Cp, G)
*********************************************************************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
real(rfreal) function mixtperf_t_dpr(D, P, R)
subroutine, public rflu_getparamshardcoderingleb(pTot, tTot)
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)
subroutine, public rflu_getparamshardcodeproudman(dInc, mInj, vInj, pTot)
subroutine errorstop(global, errorCode, errorLine, addMessage)
subroutine rflu_initbcdatahardcode(pRegion)
subroutine deregisterfunction(global)
CImg< T > & atan2(const CImg< t > &img)
Compute the arc-tangent of each pixel.
real(rfreal) function mixtperf_p_drt(D, R, T)
subroutine, public rflu_computeexactflowproudman(global, x, y, height, dInc, vInj, pTot, d, u, v, w, p)