[Nek5000-users] linear stability tool
nek5000-users at lists.mcs.anl.gov
nek5000-users at lists.mcs.anl.gov
Thu Mar 17 00:07:29 CDT 2016
Thank you Adam,
to start with the implementation, I am re-defining the base flow (as
function of t) each time step. The base flow is time dependent, however,
I cannot see any evolution of the perturbation variables. I have set
param31=-1. At the beginning of the simulation I am adding some random
noise to the perturbed variables in the following way:
common /scrns/ uf(lx1,ly1,lz1,lelg),vf(lx1,ly1,lz1,lelg),
+ wf(lx1,ly1,lz1,lelg)
n = nelgv*nx1*ny1*nz1
if (istep.eq.0) then
call rzero(uf,n) ! zero-out u on all processors
call rzero(vf,n)
call rzero(wf,n)
eps = 0.1
call add_noise(uf,vf,wf,n,eps) ! Subroutine that calculates
random noise variables
call gop(uf,work,'+ ',n)
call gop(vf,work,'+ ',n)
call gop(wf,work,'+ ',n)
call opcopy(vxp(1,jp),vyp(1,jp),vzp(1,jp),uf,vf,wf) ! COPY TO
PERTURBATION VARIABLES
end if
In SIZE: lpert=1
However the perturbed variables don't seem to change and they don't seem
to have any effect on the flow. If I plot my results, I can only see the
base flow varying with time (following its definition), but nothing
else. In addition, vz is always maintained to 0 (or to any initial
condition).
Should I initialize (or define) the perturbation variables in a
different way?
Best regards,
SL
El 16-03-2016 10:02, nek5000-users at lists.mcs.anl.gov escribió:
> Hi
>
> I didn't work with time dependent base flow, so I'm not sure if there
> are some serious problem in implementation or not. First of all, the
> base flow is stored in the arrays for non linear solution (vx, vy, vz)
> and the perturbation in (vxp,vyp,vzp) (both in SOLN). Negative value
> of param(31) sets the logical ifbase to .false. excluding call to
> fluid in nek_advance. In this case only fluidp is executed. To get
> time dependent base flow you could set positive param(31) and comment
> ifbase check in arnoldi initialisation routine. This would activate
> fluid and evolve both perturbation and base flow. In this case you
> would need to resent vx,vy,vz to your initial conditions for base flow
> at the end of every arnoldi cycle (where pressure is set to zero).
> Other solution would be keeping ifbase=.false. and recalculating vx,
> vy,vz at every step within arnoldi cycle. That what you wrote in your
> mail, but this should be mostly local operation. I do not see any
> reason to use gop routines. If you have analytical solution for base
> flow you simply replace vx,vy,vz with new values base on the position
> of the gll point (xm1,ym1,zm1 arrays in GEOM) and the time within the
> given cycle. If you are not 100% sure the function is continuous at
> the element faces, edges and vertices, you can add averaging step:
> ! face averaging
> call opdssum(VX,VY,VZ)
> call opcolv (VX,VY,VZ,VMULT)
> vmult is inverse of grid point multiplicity and is stored in SOLN. No
> more global operations is required. However, I'm not sure if this
> method would work, as ifbase shows up in navier5.f as well, and one
> would need to check the code to see what variables are really used. I
> would guess it should work, but I cannot guarantee it. You can try.
> You have to be sure the base flow evolution is exactly the same in
> each arnoldi cycle, to mimic the matrix operation properly.
> Regards
> Adam
>
> On 2016-03-15 13:18, nek5000-users at lists.mcs.anl.gov wrote:
>> Hi Adam,
>>
>> thank you, it works now.
>>
>> However I still have a question about this tool. My base flow is time
>> dependent, so I did in usrchk
>>
>> call opcopy (u,v,w,vx,vy,vz)
>> u=u*function(time)
>> v=v*function(time)
>> w=w*function(time)
>>
>> call gop(u,work,'+ ',n)
>> call gop(v,work,'+ ',n)
>> call gop(w,work,'+ ',n)
>>
>> do e=1,nelv
>> eg = lglel(e)
>> call copy(vx(1,1,1,e),u(1,1,1,eg),nxyz)
>> call copy(vy(1,1,1,e),v(1,1,1,eg),nxyz)
>> call copy(vz(1,1,1,e),w(1,1,1,eg),nxyz)
>> enddo
>>
>> However, I am not sure how to specify this velocity filed as the base
>> flow each time step...
>>
>> Thank you in advance.
>> SL
>>
>> El 15-03-2016 19:06, nek5000-users at lists.mcs.anl.gov escribió:
>>> Hi
>>>
>>> To force base flow to be constant you have to set negative param(31)
>>> in your ###.rea file. Something like
>>> -1.00000 p031 NPERT: #perturbation modes
>>> Of course you need the base flow as well. It could be analytical one
>>> set in useric, or just a field read during initialisation.
>>> Regards
>>> Adam
>>>
>>>
>>> On 2016-03-15 08:49, nek5000-users at lists.mcs.anl.gov wrote:
>>>> Hi Neks,
>>>>
>>>> I'm trying to use the linear stability tool of Nek5000.
>>>>
>>>> To start with, I am trying to run the ext_cyl example. However, I
>>>> have found the following problem:
>>>>
>>>> ERROR: arnoldi assumes constant base flow.
>>>>
>>>> I have found on the README tutorial that the base flow has to be
>>>> specified on the .rea file. I have included a file in the
>>>> PRESOLVE/RESTART option, however I still have the same error.
>>>>
>>>> What should I modify?
>>>>
>>>> Finally, I have also used a subroutine defined in the .usr file that
>>>> reads the file containing the base flow. However, the error
>>>> persist...
>>>>
>>>> Could you help me, please?
>>>>
>>>> Cheers
>>>> SL
>>>> _______________________________________________
>>>> Nek5000-users mailing list
>>>> Nek5000-users at lists.mcs.anl.gov
>>>> https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users
>>>
>>> _______________________________________________
>>> Nek5000-users mailing list
>>> Nek5000-users at lists.mcs.anl.gov
>>> https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users
>>
>>
>> _______________________________________________
>> Nek5000-users mailing list
>> Nek5000-users at lists.mcs.anl.gov
>> https://lists.mcs.anl.gov/mailman/listinfo/nek5000-users
>
> _______________________________________________
> 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