TRAILING EDGE MESH ENTANGLEMENT OF AIRFOIL

135 views
Skip to first unread message

SABA UL HAQUE

unread,
Feb 12, 2021, 12:27:46 AM2/12/21
to Nek5000

Dear Users,

I am trying to simulate a full span oscillating airfoil by meshing in Gambit and converting the mesh to .rea. Using one of the examples in the Nek5000, Oscillating Cylinder case (ocyl) for the simulation. I am using the same .usr file as present in the ocyl example, the only change is in the direction of oscillation is changed from Y-axis to Z-axis.

The leading edge oscillation is fine but the trailing edge oscillation have the mesh entanglement problem.

The images attached are at:

1. Very initial stage of simulation

2. The entangled mesh

If anyone can suggest any solution, it would be really helpful.


Thanks,

Saba

entangled.png
initial.png

YiQin Xu

unread,
Feb 12, 2021, 1:52:43 AM2/12/21
to SABA UL HAQUE, Nek5000
Hi Saba,

I am not a Nek expert but I personally think the issue is, when Nek calculates the mesh velocity (wvx, wvy) at such spot, it gets incorrect averaged values.

So after Nek gets boundary values (wvx, wvy) from the boundary, it would calculate the rest and do an average. It would be fine for the rest  since the average results would be the input value.

But, things would be different at such spot, which contains four elements while two have the correct value and the other two do not.

image.png
Which means, the point at the trailing edge would get correct boundary conditions from the two elements. But at this moment, the other two elements which also share such point do not have any information about the boundary condition at all, which is 0 essentially. Nek would calculate the whole field mesh velocity and gives a number to the other two elements which do not have any information about the boundary condition. It would further make an average of these four values. Two values are correct, while the other two are not. Then you would have something like that as you must have four correct values.

My personal solution as not an expert is to find out the element number of the other two elements, give them correct mesh velocity value at such point, make w1mask (and w2, or w3) zero, in mvmesh.f.  Or, you can use multi-mesh Nek when inside mesh velocity is user defined and sort of uniform. Or you could use user-defined mesh velocity for a single mesh if the motion is not that complicated.

Maybe such sharing edge issue is solved in the latest version of Nek so you may just need to use the latest one.

Thanks,
Yiqin Xu




SABA UL HAQUE <sabau...@gmail.com> 于2021年2月11日周四 下午10:27写道:
--
You received this message because you are subscribed to the Google Groups "Nek5000" group.
To unsubscribe from this group and stop receiving emails from it, send an email to nek5000+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/nek5000/269d991d-d537-4f72-ab3e-4a5c4e957912n%40googlegroups.com.

Fischer, Paul

unread,
Feb 12, 2021, 2:57:22 PM2/12/21
to YiQin Xu, SABA UL HAQUE, Nek5000

Assuming you're working with the ocyl2.usr file, I think you should add the
following line:

      call dsop(msk,'*  ',lx1,ly1,lz1)

immediately after the Dirichlet mask array is created.  I'm quite certain that
this is the issue here.  I paste the location in the code below.

What this does is to communicate the mask data to elements that have a 
single vertex touching the boundary but do not have an entire face on the
boundary.   This was an oversight on my part earlier, but it was not important
in the cylinder case as there were no such elements.

hth,
Paul

      nface = 2*ndim

      do e=1,nelv

      do f=1,nface


c        Set Dirichlet for mesh velocity on all non-interior boundaries

         if (cbc(f,e,1).ne.'E  ') call facev(msk,e,f,z0,nx1,ny1,nz1)


c        Set inhomogeneous Dirichlet data on cylinder

         if (cbc(f,e,1).eq.'mv ') then

           call fcaver(xavg,xm1,e,f)

           if (xavg.gt.-1.2) call facev(tmp,e,f,m1,nx1,ny1,nz1)

         endif

      enddo

      enddo

      call dsop(msk,'*   ',lx1,ly1,lz1)  ! <====== ADD THIS LINE HERE

      call axhelm (rhs,tmp,h1,h2,1,1)





From: nek...@googlegroups.com <nek...@googlegroups.com> on behalf of YiQin Xu <yiq...@asu.edu>
Sent: Friday, February 12, 2021 12:52 AM
To: SABA UL HAQUE <sabau...@gmail.com>
Cc: Nek5000 <nek...@googlegroups.com>
Subject: Re: [nek5000] TRAILING EDGE MESH ENTANGLEMENT OF AIRFOIL
 
Reply all
Reply to author
Forward
0 new messages