[Nek5000-users] Calculating wall shear stress and dimensionless wall distances
nek5000-users at lists.mcs.anl.gov
nek5000-users at lists.mcs.anl.gov
Wed Apr 14 12:53:20 CDT 2010
For the postx approach, you don't need points associated w/ the
mesh, just points that are on the surface of your geometry.
(Sorry for the short response, but I have to leave the office
right now...)
Paul
On Wed, 14 Apr 2010, nek5000-users at lists.mcs.anl.gov wrote:
> Dear Paul,
>
> Thank you for the reply. I tried to implement the code in the usrchk
> subroutine but found that the values of dgtq and dg are zeros. I tried to
> identify the wall boundary conditions and found the corresponding the
> elements , faces and used the code snippet. I am sure I am missing something
> here.. Any thoughts ?
>
> However the way you said with the postx works. It did give me a profile.out
> and I am currently working on a way to post-process it. I have close to 25k
> elements and probably a few hundred elements near the blade and I am not
> quite sure how to grab the coordinates to enter into the prof.in file.
> Ideally I would like to get the yplus/z plus for the first couple of
> elements or so. I tried the same way of grabbing the elements and faces near
> the area of interest, but I am clueless as to how I access the co-ordinate
> data of those elements.
>
> I had another question regarding span-wise averaging of shear stress, Once I
> calculate the shear stress using the above routine, could I use the
> z_average() routine in navier5.f to do the span-wise averaging ? I was
> looking at the turbchannel.usr where the wall shear stress and averaging
> process is done but did not make a huge progress..
>
> <code>
> subroutine usrchk
> include 'SIZE'
> include 'TOTAL'
> include 'ZPER'
>
> integer e,f,pf
> real x0(3)
> character*3 cb_surf
> real n1,n2,n3
> real dg(3,2)
> real dgtq(3,4)
> real xm0 (lx1,ly1,lz1,lelt)
> real ym0 (lx1,ly1,lz1,lelt)
> real zm0 (lx1,ly1,lz1,lelt)
> real sij (lx1,ly1,lz1,3*ldim-3,lelv)
> real pm1 (lx1,ly1,lz1,lelv)
> real visc(lx1,ly1,lz1,lelv)
>
> n=nx1*ny1*nz1*nelv
>
> call rzero(dgtq,12)
>
> nface = 2 * ndim
> cb_surf = 'W '
> do e = 1,nelv
> flag = 1
> do f = 1,nface
> if(cbc(f,e,1).eq.cb_surf.and.x.gt.-25E-02 .and. x.lt.125E-02)then
> flag = 0 ! Wall Element
> pf = eface1(f) ! convert from preproc. notation
>
> js1 = skpdat(1,pf)
> jf1 = skpdat(2,pf)
> jskip1 = skpdat(3,pf)
> js2 = skpdat(4,pf)
> jf2 = skpdat(5,pf)
> jskip2 = skpdat(6,pf)
>
> if (if3d.or.ifaxis) then
> i = 0
> a = 0
> do j2=js2,jf2,jskip2
> do j1=js1,jf1,jskip1
> i = i+1
> n1 = unx(i,1,f,e)*area(i,1,f,e)
> n2 = uny(i,1,f,e)*area(i,1,f,e)
> n3 = unz(i,1,f,e)*area(i,1,f,e)
> a = a + area(i,1,f,e)
> c
> v = visc(j1,j2,1,e)
> c
> s11 = sij(j1,j2,1,1,e)
> s21 = sij(j1,j2,1,4,e)
> s31 = sij(j1,j2,1,6,e)
> c
> s12 = sij(j1,j2,1,4,e)
> s22 = sij(j1,j2,1,2,e)
> s32 = sij(j1,j2,1,5,e)
> c
> s13 = sij(j1,j2,1,6,e)
> s23 = sij(j1,j2,1,5,e)
> s33 = sij(j1,j2,1,3,e)
> c
> dg(1,1) = pm1(j1,j2,1,e)*n1 ! pressure drag
> dg(2,1) = pm1(j1,j2,1,e)*n2
> dg(3,1) = pm1(j1,j2,1,e)*n3
> c
> dg(1,2) = -v*(s11*n1 + s12*n2 + s13*n3) ! viscous drag
> dg(2,2) = -v*(s21*n1 + s22*n2 + s23*n3)
> dg(3,2) = -v*(s31*n1 + s32*n2 + s33*n3)
> c
> r1 = xm0(j1,j2,1,e)
> r2 = ym0(j1,j2,1,e)
> r3 = zm0(j1,j2,1,e)
> c
> do l=1,2
> do k=1,3
> dgtq(k,l) = dgtq(k,l) + dg(k,l)
> enddo
> enddo
> c
> dgtq(1,3) = dgtq(1,3) + (r2*dg(3,1)-r3*dg(2,1)) ! pressure
> dgtq(2,3) = dgtq(2,3) + (r3*dg(1,1)-r1*dg(3,1)) ! torque
> dgtq(3,3) = dgtq(3,3) + (r1*dg(2,1)-r2*dg(1,1))
> c
> dgtq(1,4) = dgtq(1,4) + (r2*dg(3,2)-r3*dg(2,2)) ! viscous
> dgtq(2,4) = dgtq(2,4) + (r3*dg(1,2)-r1*dg(3,2)) ! torque
> dgtq(3,4) = dgtq(3,4) + (r1*dg(2,2)-r2*dg(1,2))
> enddo
> enddo
> endif
> endif
> enddo
> enddo
>
> return
> end
>
> </code>
>
>
> Thanks and Regards
> Shriram
>
More information about the Nek5000-users
mailing list