[Nek5000-users] New code+recycling BC

nek5000-users at lists.mcs.anl.gov nek5000-users at lists.mcs.anl.gov
Tue May 4 17:39:16 CDT 2010


Hiu,

sorry about the delay, to make sure I regenerated the problem.

I did as you suggested, it is still messed up when opening the first fld dump in
VisIt with the meta file containing only one file.

What I meant by element ordering is the way the recycling b.c. is set up, where
the "outflow" face of recycling box is established by counting a number of
elements downstream from the inflow, as it is done in the jet example. I have a
suspicion that something changed there (not in my .rea file, though).
The problem came about when updating Nek from 404 to 503, I did not change
Visit.

Thanks,
Markus



Quoting nek5000-users at lists.mcs.anl.gov:

> Can you dump a field file including the geometry and then visualize it using
> VisIt (your metadata file should only contain one single fld). Is it still
> messed up?
>
> Stefan
>
>
> On May 3, 2010, at 5:24 PM, nek5000-users at lists.mcs.anl.gov wrote:
>
> > Markus,
> >
> > is it only a viz issue or do you have some problems in Nek after upgrading
> to the latest release.
> >
> > Stefan
> >
> >
> > On May 3, 2010, at 4:25 PM, nek5000-users at lists.mcs.anl.gov wrote:
> >
> >> Hi,
> >>
> >> when updating the code from rev. 404 (oldvel.png) to 503
> >> (newvel.png), I realized a problem with the recycling
> >> (periodic) boundary condition for a channel simulation I am doing -
> >> compare the attached pictures of velocity on the inflow plane (the inflow
> is the Y/Z plane). For the two cases, SIZE/SIZEu, .rea, the restart step and
> .usr are the exact same.
> >>
> >> Here are the relevant pieces from .usr. Have any of the functions
> >> changed or am I doing something wrong? It seems as if the element
> >> ordering is not what it was before.
> >> I did this based on the jet example.
> >>
> >> Thanks,
> >> Markus
> >>
> >>
> >> c-----------------------------------------------------------------------
> >>      subroutine userbc (ix,iy,iz,iside,eg)
> >>      include 'SIZE'
> >>      include 'TOTAL'
> >>      include 'NEKUSE'
> >>
> >>      common /cvelbc/ uin(lx1,ly1,lz1,lelv)
> >>     $              , vin(lx1,ly1,lz1,lelv)
> >>     $              , win(lx1,ly1,lz1,lelv)
> >>     $              , tin(lx1,ly1,lz1,lelv)
> >>
> >>      integer e,eg
> >>
> >>      e = gllel(eg)
> >>
> >>      ux=uin(ix,iy,iz,e)
> >>      uy=vin(ix,iy,iz,e)
> >>      uz=win(ix,iy,iz,e)
> >> .
> >> ....
> >>
> >> c-----------------------------------------------------------------------
> >>      subroutine userchk
> >>      include 'SIZE'
> >>      include 'TOTAL'
> >>      include 'ZPER'  ! for nelx,nely,nelz
> >>      include 'RESTART' !Needs to be here for prepost to work
> >>      common /cvlmsk/ vlmsk(lx1,ly1,lz1,lelt),vvol,
> >>     &                wt(lx1*ly1*lz1,lelt),vol_per
> >>
> >>      integer e,f,eg,ninx,niny,ninz
> >>
> >> .c-----Computations for recycling BC
> >>      speed = glsc2(vx,wt,n)/vol_per ! Where vol_per is the volume of
> >> the recycling box
> >>      starg = 1.0
> >>      addtemp = 1.0
> >>      call set_inflow(starg,speed,addtemp)   ! set up inflow BCs
> >> .
> >> ....
> >>
> >> c-----------------------------------------------------------------------
> >>      subroutine set_inflow(starg,speed,addtemp)   ! set up inflow BCs
> >>
> >>      include 'SIZE'
> >>      include 'TOTAL'
> >>
> >>      integer icalld,e,eg,f
> >>      save    icalld
> >>      data    icalld /0/
> >>
> >>      common /cvelbc/ uin(lx1,ly1,lz1,lelv)
> >>     $              , vin(lx1,ly1,lz1,lelv)
> >>     $              , win(lx1,ly1,lz1,lelv)
> >>     $              , tin(lx1,ly1,lz1,lelv)
> >>
> >>      common /scruz/  ptr(lx1,ly1,lz1,lelv)
> >>      integer ptr,gs_bc_hndl
> >>      save        gs_bc_hndl
> >>
> >>      real ratio
> >>      save ratio
> >>      data ratio / 1. /
> >>
> >>      common /nekmpi/ mid,mp,nekcomm,nekgroup,nekreal
> >>
> >>      n = nx1*ny1*nz1*nelv
> >>
> >>      if (icalld.eq.0) then
> >>         icalld = 1
> >>         nxyz = nx1*ny1*nz1
> >>
> >>         do e=1,nelv
> >>            eg = lglel(e)
> >>            eo = nxyz*(eg-1)    ! offset
> >>            do i=1,nxyz
> >>               ptr(i,1,1,e) = i+eo
> >>            enddo
> >>
> >>            do k=2,nz1-1        ! get rid of interior pointers
> >>            do j=2,ny1-1            do i=2,nx1-1
> >>               ptr(i,j,k,e) = 0
> >>            enddo
> >>            enddo
> >>            enddo
> >>
> >>            nface = 2*ndim
> >>            do f=1,nface        ! connect inflow to elems downstream
> >>               ioff = nxyz*8    ! 5 elements in X to end of "periodic" sec.
> >>               if (cbc(f,e,1).eq.'v  ') then
> >>                 call iface_add(ptr,f,e,ioff,nx1,ny1,nz1)
> >>               endif
> >>            enddo
> >>
> >>         enddo
> >>
> >>         call gs_setup(gs_bc_hndl,ptr,n,nekcomm,np) ! connect v +
> >> downstream
> >>
> >>      endif
> >>
> >>      call copy(uin,vx,n)
> >>      call copy(vin,vy,n)
> >>      call copy(win,vz,n)
> >>      call copy(tin,t,n)
> >>
> >>      call col2(uin,v1mask,n)
> >>      call col2(vin,v2mask,n)
> >>      call col2(win,v3mask,n)
> >>      call col2(tin,tmask,n)
> >>
> >>      call gs_op(gs_bc_hndl,uin,1,1,0)  ! 1 ==> +  ! uin(inflow) =
> >> vx(slab_k)
> >>      call gs_op(gs_bc_hndl,vin,1,1,0)  ! 1 ==> +
> >>      call gs_op(gs_bc_hndl,win,1,1,0)  ! 1 ==> +
> >>      call gs_op(gs_bc_hndl,tin,1,1,0)  ! 1 ==> +
> >>
> >>      if (speed.gt.0) then
> >>         ratio = .5*(starg/speed + ratio)
> >>         call cmult(uin,ratio,n)
> >>         call cmult(vin,ratio,n)
> >>         call cmult(win,ratio,n)
> >>         call cadd(tin,addtemp,n) !Substract added heat
> >>      endif
> >>
> >>      return
> >>      end
> >>
> >>
> >>
> >> <oldvel.png><newvel.png>_______________________________________________
> >> Nek5000-users mailing list
> >> Nek5000-users at lists.mcs.anl.gov
> >> https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users
> >
> > _______________________________________________
> > Nek5000-users mailing list
> > Nek5000-users at lists.mcs.anl.gov
> > https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users
>
> _______________________________________________
> Nek5000-users mailing list
> Nek5000-users at lists.mcs.anl.gov
> https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users
>





More information about the Nek5000-users mailing list