117860365SKenneth E. Jansenc================================================================ 217860365SKenneth E. Jansenc Set jet inlet BCs based on contraction mdot dynamically, 317860365SKenneth E. Jansenc called by itrdrv.f 417860365SKenneth E. Jansenc =============================================================== 517860365SKenneth E. Jansen 617860365SKenneth E. Jansen subroutine setBlowing_Duct2(x,BC,y,iTurbWall,istp) 717860365SKenneth E. Jansen 817860365SKenneth E. Jansen use blowingDuct ! njetinlet, jetinletf 9*0d32f9a8SKenneth E. Jansen use timedataC ! varts data 1017860365SKenneth E. Jansen include "common.h" 1117860365SKenneth E. Jansen include "mpif.h" 1217860365SKenneth E. Jansen include "auxmpi.h" 1317860365SKenneth E. Jansen integer istp 1417860365SKenneth E. Jansen integer i, nn 1517860365SKenneth E. Jansen real*8 xcoor,ycoor,zcoor 1617860365SKenneth E. Jansen real*8 BC(nshg,ndofBC) 1717860365SKenneth E. Jansen real*8 x(nshg,nsd) 1817860365SKenneth E. Jansen real*8 y(nshg,ndof) 1917860365SKenneth E. Jansen real*8 yVel, Temp, pres, mdot, rho, Area 2017860365SKenneth E. Jansen real*8 xminm,xmaxm,zminm,zmaxm,xlm,zlm 2117860365SKenneth E. Jansen real rx,rz 2217860365SKenneth E. Jansen integer isfID 2317860365SKenneth E. Jansen real*8 contraPres, contraTemp, contraXVel, contraRho, 2417860365SKenneth E. Jansen & contraArea, contraMdot 2517860365SKenneth E. Jansen real*8 blowingPres,blowingTemp,blowingRho,blowingArea, 2617860365SKenneth E. Jansen & MdotRatio,blowingMdot,blowVel 2717860365SKenneth E. Jansen integer contraProbeNo,blowingProbeNo 2817860365SKenneth E. Jansen integer iTurbWall(nshg) 2917860365SKenneth E. Jansen 3017860365SKenneth E. Jansenc--- The following operations must be fulfilled on each proces because even if 3117860365SKenneth E. Jansenc--- there is no jet mouth on that process, it can be the host process that contains 3217860365SKenneth E. Jansenc--- all the varts data 3317860365SKenneth E. Jansen 3417860365SKenneth E. Jansen if(myrank.eq.0)then ! only rank0 process can acess all varts data 3517860365SKenneth E. Jansen contraProbeNo=1 ! in xyzts.dat the FIRST probe is at contraction inlet 3617860365SKenneth E. Jansen blowingProbeNo=2 3717860365SKenneth E. Jansen contraArea=1.17475**2 ! meter^2 3817860365SKenneth E. Jansen blowingArea=0.00237064 !meter^2 3917860365SKenneth E. Jansen 4017860365SKenneth E. Jansen contraPres=varts(contraProbeNo,1) 4117860365SKenneth E. Jansen contraTemp=varts(contraProbeNo,5) 4217860365SKenneth E. Jansen contraXVel=varts(contraProbeNo,2) 4317860365SKenneth E. Jansen contraRho =contraPres/(287*contraTemp) 4417860365SKenneth E. Jansen contraMdot=contraRho*contraArea*contraXVel !kg/s 4517860365SKenneth E. Jansen 4617860365SKenneth E. Jansen blowingPres=varts(blowingProbeNo,1) 4717860365SKenneth E. Jansen blowingTemp=varts(blowingProbeNo,5) 4817860365SKenneth E. Jansen blowingRho = blowingPres/(287*blowingTemp) 4917860365SKenneth E. Jansen 5017860365SKenneth E. Jansen MdotRatio = (BlowingIniMdotDuct) + 5117860365SKenneth E. Jansen & real(istp-1)/real(nBlowingStepsDuct-1) 5217860365SKenneth E. Jansen & *(BlowingFnlMdotDuct-BlowingIniMdotDuct) 5317860365SKenneth E. Jansen 5417860365SKenneth E. Jansen blowingMdot= (MdotRatio/100.0)*contraMdot ! The absolute value of mdot 5517860365SKenneth E. Jansen blowingVel = blowingMdot/(blowingArea*blowingRho) 5617860365SKenneth E. Jansen write(*,*)'Blowing Velocity:', blowingVel 5717860365SKenneth E. Jansen endif 5817860365SKenneth E. Jansen 5917860365SKenneth E. Jansen call MPI_BARRIER(MPI_COMM_WORLD,ierr) 6017860365SKenneth E. Jansen call MPI_BCAST(blowingVel,1,MPI_REAL8,master, 6117860365SKenneth E. Jansen & MPI_COMM_WORLD,ierr) 6217860365SKenneth E. Jansen call MPI_BARRIER(MPI_COMM_WORLD,ierr) 6317860365SKenneth E. Jansen 6417860365SKenneth E. Jansen 6517860365SKenneth E. Jansenc--- Only if current process contains jet inlet nodes 6617860365SKenneth E. Jansen if(njetinlet .gt. 0)then 6717860365SKenneth E. Jansen do i=1,njetinlet 6817860365SKenneth E. Jansen nn=jetinletf(i) 6917860365SKenneth E. Jansen if(iTurbWall(nn).eq.0)then 7017860365SKenneth E. Jansenc xcoor=x(nn,1) 7117860365SKenneth E. Jansenc ycoor=x(nn,2) 7217860365SKenneth E. Jansenc zcoor=x(nn,3) 7317860365SKenneth E. Jansenc rx=(xcoor-xminm)*(xmaxm-xcoor)/(xlm/2)**2 7417860365SKenneth E. Jansenc rz=(zcoor-zminm)*(zmaxm-zcoor)/(zlm/2)**2 7517860365SKenneth E. Jansenc rx=max(0.0,rx) 7617860365SKenneth E. Jansenc rz=max(0.0,rz) 7717860365SKenneth E. Jansenc pres = y(nn,4) ! the quantity updating each time step 7817860365SKenneth E. Jansenc Temp = y(nn,5) 7917860365SKenneth E. Jansenc rho = pres/(287.0*Temp) 8017860365SKenneth E. Jansenc yVel = (blowingMdot/rho/Area)*rx*rz 8117860365SKenneth E. Jansenc............................ 8217860365SKenneth E. Jansen BC(nn,2) = 317 ! Temp 8317860365SKenneth E. Jansen BC(nn,4) = blowingVel ! set and scale y velocity 8417860365SKenneth E. Jansen BC(nn,3) = 0 8517860365SKenneth E. Jansen BC(nn,5) = 0 8617860365SKenneth E. Jansen BC(nn,7) = 1.825e-5 8717860365SKenneth E. Jansen endif 8817860365SKenneth E. Jansen enddo 8917860365SKenneth E. Jansen 9017860365SKenneth E. Jansen endif ! only if current process contains jet inlet nodes 9117860365SKenneth E. Jansen 9217860365SKenneth E. Jansen return 9317860365SKenneth E. Jansen end 9417860365SKenneth E. Jansen 95