[Nek5000-users] **ERROR**: Failed in HMHOLTZ
nek5000-users at lists.mcs.anl.gov
nek5000-users at lists.mcs.anl.gov
Tue Jan 19 08:22:55 CST 2010
> The calculation also works if I'm only setting p94 to zero (projection of the velocity)...
Sure, as I said the problem there is a problem with the residual projection if Helmholtz iterations are zero.
Typically you'll get more then zero iterations in a real calculation and this problem does not show up. Anyway we'll provide a fix addressing this issue soon.
Thx
Stefan
On Jan 19, 2010, at 3:06 PM, nek5000-users at lists.mcs.anl.gov wrote:
> 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
>
>
>
> _______________________________________________
> 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