[Nek5000-users] **ERROR**: Failed in HMHOLTZ
nek5000-users at lists.mcs.anl.gov
nek5000-users at lists.mcs.anl.gov
Tue Jan 19 08:06:51 CST 2010
Here my usr-file. For some tests I'm using a fixed driving force ffz
and calculate my u_bar in every timestep (subroutine calc_ubar).
The calculation also works if I'm only setting p94 to zero (projection
of the velocity)...
What do you mean by "what happens if you integrate for say 1
flow-through time"??
C-----------------------------------------------------------------------
C nek5000 user-file template
C
C user specified routines:
C - userbc : boundary conditions
C - useric : initial conditions
C - uservp : variable properties
C - userf : local acceleration term for fluid
C - userq : local source term for scalars
C - userchk: general purpose routine for checking errors etc.
C
C-----------------------------------------------------------------------
subroutine uservp (ix,iy,iz,eg)
include 'SIZE'
include 'TOTAL'
include 'NEKUSE'
integer e,f,eg
c e = gllel(eg)
udiff = 0.0
utrans = 0.0
return
end
c-----------------------------------------------------------------------
subroutine userf (ix,iy,iz,eg)
c
c Note: this is an acceleration term, NOT a force!
c Thus, ffx will subsequently be multiplied by rho(x,t).
c
include 'SIZE'
include 'TOTAL'
include 'NEKUSE'
integer e,f,eg
c e = gllel(eg)
ffx = 0.0
ffy = 0.0
ffz = 0.05
return
end
c-----------------------------------------------------------------------
subroutine userq (ix,iy,iz,eg)
include 'SIZE'
include 'TOTAL'
include 'NEKUSE'
integer e,f,eg
c e = gllel(eg)
qvol = 0.0
source = 0.0
return
end
c-----------------------------------------------------------------------
subroutine userchk
include 'SIZE'
include 'TOTAL'
include 'ZPER' ! for nelx,nely,nelz
call calc_ubar(vz,1.0)
return
end
c-----------------------------------------------------------------------
subroutine userbc (ix,iy,iz,iside,ieg)
include 'SIZE'
include 'TOTAL'
include 'NEKUSE'
ux = 0.0
uy = 0.0
uz = 0.0
temp = 0.0
return
end
c-----------------------------------------------------------------------
subroutine useric (ix,iy,iz,ieg)
include 'SIZE'
include 'TOTAL'
include 'NEKUSE'
ux = 0.0
uy = 0.0
uz = (1-(y-0.5)**2)
temp = 0.0
return
end
c-----------------------------------------------------------------------
subroutine usrdat ! This routine to modify element vertices
include 'SIZE'
include 'TOTAL'
return
end
c-----------------------------------------------------------------------
subroutine usrdat2 ! This routine to modify mesh coordinates
include 'SIZE'
include 'TOTAL'
return
end
c-----------------------------------------------------------------------
subroutine usrdat3
include 'SIZE'
include 'TOTAL'
return
end
c-----------------------------------------------------------------------
subroutine calc_ubar(u,idir) ! driving force for Ubar = 1
include 'SIZE'
include 'TOTAL'
common /uforce/ utldo(ldim)
n=nx1*ny1*nz1*nelv
if (istep.eq.0) f_new=param(71) ! Update forcing for Ubar = 2
ubar = glsc2(u,bm1,n)/volvm1
open(unit=10,file='u_bar.out')
write(10,*) ubar,ISTEP,TIME
return
end
More information about the Nek5000-users
mailing list