[Nek5000-users] Robin boundary conditions for the velocity
nek5000-users at lists.mcs.anl.gov
nek5000-users at lists.mcs.anl.gov
Wed Apr 20 09:03:03 CDT 2011
I actually miswrote my boundary conditions. What I want to impose is:
(U.n) u + (p * IdentityMatrix + inv(Re) * grad(u)) . n = 0
that is, if n = (0,0,1)^T = ez:
p = 0
dux/dz = Re * W * ux
duy/dz = Re * W * uy
duz/dz = Re * W * uz
Concerning the velocity bc, I assume once again that the following code
would do the trick:
subroutine usrchk
[...]
common /mygrad/ gradux(lx1,ly1,lz1,lelt), ... , gradwz(lx1,ly1,lz1,lelt)
call gradm1(graduv,graduy,graduz,vx)
call gradm1(gradvx,gradvy,gradvz,vy)
call gradm1(gradwx,gradwy,gradz,vz)
[...]
and then in userbc
subroutine userbc (ix,iy,iz,iside,eg)
include 'SIZE'
include 'TOTAL'
include 'NEKUSE'
common /mygrad/ ...
integer e,eg
e = gllel(eg) ! global element number to processor-local el. #
c Assuming param(2)<0 in .rea, Re = 1./param(2) since in connect2 or subs1 I
do not remember there is first param(2) = -1/param(2)
ux = (1./param(2)) * vz(ix,iy,iz,ie) * graduz(ix,iy,iz,ie)
uy = (1./param(2)) * vz(ix,iy,iz,ie) * gradvz(ix,iy,iz,ie)
uz = (1./param(2)) * vz(ix,iy,iz,ie) * gradwz(ix,iy,iz,ie)
However, how do I make the code take this into account along with keeping
the p = 0 imposed at the outflow? I presume I should use the 'o' bc
character instead of 'O' in my .rea boundary conditions definition section.
Is that correct?
Best regards,
JC
On 19 April 2011 19:34, Jean-Christophe Loiseau <loiseau.jc at gmail.com>wrote:
> Hi Nek's.
>
> I would like to use the following boundary condition as my outflow
> condition for the adjoint perturbation mode:
>
> p = du/dz = dv/dz = 0
> dw/dz = Re * Uz * uz
>
> where Uz is the z-component of the base flow. I would be tempted to do
> something like:
>
> subroutine usrchk
>
> [...]
> common /mygrad/ gradwx(lx1,ly1,lz1,lelt)
> $ gradwy(lx1,ly1,lz1,lelt)
> $ gradw(zlx1,ly1,lz1,lelt)
>
> call gradm1(gradwx,gradwy,gradz,vz)
>
> [...]
>
> and then in userbc
>
> subroutine userbc (ix,iy,iz,iside,eg)
> include 'SIZE'
> include 'TOTAL'
> include 'NEKUSE'
>
> common /mygrad/ gradwx(lx1,ly1,lz1,lelt)
> $ , gradwy(lx1,ly1,lz1,lelt)
> $ , gradwz(lx1,ly1,lz1,lelt)
>
> integer e,eg
>
> e = gllel(eg) ! global element number to processor-local el. #
>
> c Assuming param(2)<0 in .rea, Re = 1./param(2) since in connect2 or subs1
> I do not remember there is first param(2) = -1/param(2)
>
> uz = (1./param(2)) * vz(ix,iy,iz,ie) * gradwz(ix,iy,iz,e)
>
> However I am not sure how to handle the other boundary conditions on u, v
> and p.
>
> Regards,
> JC
>
> --
> Jean-Christophe
>
--
Jean-Christophe
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/nek5000-users/attachments/20110420/2fa24dd9/attachment.html>
More information about the Nek5000-users
mailing list