Nek5000 / Nek5000

our classic
https://nek5000.mcs.anl.gov/
Other
384 stars 243 forks source link

High order Jacobian matrix, interpolation function jgl jgt for GLL & GL interpolation #842

Closed Maccchiatooo closed 2 weeks ago

Maccchiatooo commented 2 weeks ago

I have some questions about GLL & GL interpolation when lx1 neq lxd.

  1. In convect.f, subroutine convop_fst_2d, we first compute lxd order gradient and compute {C dot grad(u)}. In this case, I believe Jacobian is implicitly multiplied inside of C matrix. I am wondering if I can explicitly obtain Jacobian for lxd order. Or where can I find the construction of C matrix ?

  2. In the subroutine intp_rstd, we are able to transfer GLL to GL, and GL back to GLL. Now, I want to compare grad_rstd with local_grad2 when mx=md, which means lx1=lxd. It seems that the results are not consistent. While it should give the same result, because convop_fst_2d use grad_rstd to compute gradient when lx1=lxd. And I further noticed that the problem is not from dg & dgt, but from subroutine intp_rstd, and jgl & jgt. I don't know if this scheme works when mask is not used? If it works, then the gradient should be consistently computed by local_grad2 and grad_rstd. Or we have to use bmnv rather than binvm1 to evaluate B-1 C grad u?

  3. In subroutine conv_fst, why ifd always true???? In subroutine grad_rstd, why get_dgl_ptr (ip,md,md) but not get_dgl_ptr (ip,mx,md)???

fischer1 commented 2 weeks ago

You can find a full description of the dealiased operator here:

https://link.springer.com/article/10.1007/s10915-013-9704-1

hth, Paul


From: Maccchiatooo @.> Sent: Saturday, September 28, 2024 1:26 PM To: Nek5000/Nek5000 @.> Cc: Subscribed @.***> Subject: [Nek5000/Nek5000] High order Jacobian matrix, interpolation function jgl jgt for GLL & GL interpolation (Issue #842)

I have some questions about GLL & GL interpolation when lx1 neq lxd.

  1. In convect.f, subroutine convop_fst_2d, we first compute lxd order gradient and compute {C dot grad(u)}. In this case, I believe Jacobian is implicitly multiplied inside of C matrix. I am wondering if I can explicitly obtain Jacobian for lxd order. Or where can I find the construction of C matrix ?

  2. In the subroutine intp_rstd, we are able to transfer GLL to GL, and GL back to GLL. Now, I want to compare grad_rstd with local_grad2 when mx=md, which means lx1=lxd. It seems that the results are not consistent. While it should give the same result, because convop_fst_2d use grad_rstd to compute gradient when lx1=lxd. And I further noticed that the problem is not from dg & dgt, but from subroutine intp_rstd, and jgl & jgt. I don't know if this scheme works when mask is not used? If it works, then the gradient should be consistently computed by local_grad2 and grad_rstd. Or we have to use bmnv rather than binvm1 to evaluate B-1 C grad u?

  3. In subroutine conv_fst, why ifd always true???? In subroutine grad_rstd, why get_dgl_ptr (ip,md,md) but not get_dgl_ptr (ip,mx,md)???

— Reply to this email directly, view it on GitHubhttps://urldefense.com/v3/__https://github.com/Nek5000/Nek5000/issues/842__;!!DZ3fjg!_4mRlV9wF8oNpfdp4QFBdyPsPUcrXhDkfuXzFjYq_YhBAk3bmKTKjIqPyo5xM0s3SOzrjtwlPcQPoVYHJNYqHTs8Puo$, or unsubscribehttps://urldefense.com/v3/__https://github.com/notifications/unsubscribe-auth/ACV35EMKDBC6CJIT4CQNEOTZY3YEHAVCNFSM6AAAAABPA2XAYKVHI2DSMVQWIX3LMV43ASLTON2WKOZSGU2TINBTHAYDSNQ__;!!DZ3fjg!_4mRlV9wF8oNpfdp4QFBdyPsPUcrXhDkfuXzFjYq_YhBAk3bmKTKjIqPyo5xM0s3SOzrjtwlPcQPoVYHJNYqbVO5gPc$. You are receiving this because you are subscribed to this thread.Message ID: @.***>