[Nek5000-users] Element connectivity information

nek5000-users at lists.mcs.anl.gov nek5000-users at lists.mcs.anl.gov
Thu Mar 15 07:16:39 CDT 2012


Dear Outi,

Thank you for the update.  Just so I understand better, what are
the degrees of freedom for your eigenvalue problem?   Are there
ndim velocity components, plus pressure, plus temperature?

Regarding pressure, are you using PnPn or PnPn-2 ?

What about boundary conditions?  If you are eliminating redundant
velocity variables then you presumably also need to eliminate inactive
boundary values.

Once I have a handle on what you need I'll see if we can come up with
a strategy.

Best regards,

Paul

On Thu, 15 Mar 2012, nek5000-users at lists.mcs.anl.gov wrote:

> Dear Paul,
>
> I am using the parallel version of ARPACK. It is currently only called inside 
> userchk. When the Arnoldi operations finish, the Nek5000 velocity vector is 
> updated, and I force Nek5000 to start with the new vector as an initial 
> condition.
> (I am aware of that this is not an elegant implementation, but we thought 
> other options would imply modifying the source).
>
> I have verified the code against the local Orr-Sommerfeld spectrum in a 
> channel flow (using periodic BC in the streamwise direction), and the wake 
> behind a cylinder.
> It seems like the spectrum is reproduced correctly, except from a few 
> spurious eigenvalues, that are always located "exactly" at zero (real and 
> imaginary part). Those do not appear for all cases I have studied, but for 
> many cases. So far, I have ignored the spurious eigenvalues, though they make 
> the convergence slower.
>
> Best regards,
> Outi
>
> 14 Mar 2012 kl. 22:23 skrev nek5000-users at lists.mcs.anl.gov:
>
>> 
>> Dear Outi,
>> 
>> Can you tell me a bit more about the Arnoldi solver? (I know
>> about the method.  Here, I mean the specific source code that
>> you are using, what the interface to the code is, etc.)
>> 
>> Best regards,
>> 
>> Paul
>> 
>> 
>> On Wed, 14 Mar 2012, nek5000-users at lists.mcs.anl.gov wrote:
>> 
>>> Hi Paul,
>>> 
>>> Thank you for a quick response.
>>> My current understanding is that the error occurs since Arnoldi treats the 
>>> velocities in the duplicated points as separate degrees of freedom (which 
>>> they are not in Nek5000, since they come out always equal).
>>> So, therefore I am not so sure that a weighting operation would remove the 
>>> problem.
>>> Anyway, I will test what you suggest in a few cases and tell you how it 
>>> comes out.
>>> 
>>> But if it turns out that counting the points once is the only option 
>>> (asymmetrically, as you point out), is it possible to do this?
>>> (Another option is always that I make changes inside the Arnoldi 
>>> algorithm, but this might be a bit more elaborate.)
>>> 
>>> Thanks a lot,
>>> 
>>> Outi
>>> 
>>> 14 Mar 2012 kl. 13:40 skrev nek5000-users at lists.mcs.anl.gov:
>>> 
>>>> Hi Outi,
>>>> We encounter this problem all the time in conjugate gradient
>>>> and gmres iteration.
>>>> For reasons of symmetry (and, hence, commutativity and associativity,
>>>> which are two essential ingredients for parallel execution), I would
>>>> suggest that you not try to store the data only once, but rather
>>>> scale by the inverse counting-matrix (aka, multiplicity), so that 
>>>> interface points are not counted twice when computing your inner
>>>> products.
>>>> The inverse counting-matrix is stored in vmult() and tmult().  A
>>>> typical application is:
>>>>
>>>>   alpha = glsc3(vx,vmult,vx,n)   (n=nx1*ny1*nz1*nelv)
>>>> which gives the l2 inner product:  alpha := sum_i (vx_i)^2 for a vector 
>>>> VX.
>>>> Note that if you instead want the L2 inner product
>>>>
>>>>   alpha = \int_Omega (vx)^2 dV
>>>> you would compute this as:
>>>>
>>>>   alpha = glsc3(vx,bm1,vx,n)
>>>>
>>>>         = vx^T B vx
>>>> which is the inner product of vx with the (diagonal) mass matrix B.
>>>> If you want the average of the physical rms (say), it would be:
>>>>
>>>>   alpha = glsc3(vx,bm1,vx,n)
>>>>   if (alpha.gt.0) alpha = sqrt(alpha/volvm1)
>>>> etc.
>>>> In summary, for linear algebra, use vmult(). For physics, use bm1()
>>>> (B, on Mesh 1).
>>>> Please let me know if this help to resolve your problem.
>>>> Best regards,
>>>> Paul
>>>> On Wed, 14 Mar 2012, nek5000-users at lists.mcs.anl.gov wrote:
>>>>> Hi Neks,
>>>>> I am using Nek5000 coupled to an Arnoldi algorithm for hydrodynamic 
>>>>> stability computations. In these, I form a vector of the velocities, 
>>>>> which I regularly pass to the Arnoldi solver. Then, a new velocity 
>>>>> vector is formed which is passed back to Nek5000.
>>>>> Now, the code works as it is, but in addition to the physical modes it 
>>>>> produces some spurious modes, which I think originate from the fact that 
>>>>> the velocities at the element-common boundaries are accounted for twice. 
>>>>> To fix this, I need to access the element connectivity information. Can 
>>>>> you please guide me to in which variable this is stored?
>>>>> In particular, this is what I would like to do:
>>>>> -  add the element-common points to the local vector only for one of two 
>>>>> adjacent elements (and for a corner point, only one of the four elements 
>>>>> adjacent to it).
>>>>> - for the vector that Arnoldi returns, make sure that the new values of 
>>>>> the velocity are inserted also for the other adjacent element(s).
>>>>> Thanks a lot in advance!
>>>>> Outi
>>>>> _______________________________________________
>>>>> 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
>
> _______________________________________________
> 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