-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Definition of convection in high dimensional burgers equation #43
Comments
Hi Qiang, That's a great observation. Since as you write the way the Burgers PDE is currently defined clashes with the definition on Wikipedia because there is no additional incompressibility constraint I think this should definitely be addressed. What do you think about changing the current flag of exponax/exponax/nonlin_fun/_convection.py Line 20 in beea37e
mode argument, with mode being one of:
Then, one could forward those settings to all steppers that build upon the convection nonlinearity (should only be Burgers & KdV if I am not mistaken). |
Hi, Felix. Nice😼! that could be a good solution! But I am still not sure about the Cheers, |
Re mode switch: Cool 👍. Would you like to create a PR for this feature? Re |
Hi, Felix, I have added a new pull request, #45, where the non-conservative form of convection is added. I didn't change the Cheers, |
Hi Qiang, Thanks a lot for the PR!
That's a fair point. We could also keep the two boolean flags.
Are you suggesting that the I would say that there are no symbolic differences as between the conservative and neoconservative forms in higher dimensions. |
Hi, Felix, I see the points. It seems that you treat Cheers, |
Hi Qiang, I am not 100% sure, but keeping the 1/2 factor seems correct because there shouldn't be a difference between 1D and higher dimensions. I will add some more arguments in favor of this later. |
Hi, Felix. I just checked some material; I would argue that the burgers equation 1D should also be in non-conservative form. You are right, we can discuss it later. |
In order be consistent with the higher dimensional versions, I agree. How about we keep it as an option, effectively allowing four different permutations: multi-channel conservative, multi-channel nonconservative, single-channel conservative and single-channel nonconservative. For backward compatibility and since it will then also just a be a nice feature of This basically means we have the following combinations
This would require having two separate single-channel eval methods for the convection nonlinearity. The default option should be non-conservative and multi-channel. What do you think? |
Hi, Felix, I think it should work; we need to make it clear in the docstring, and then It should be all fine for the users to choose! |
Amazing, |
Hi, Felix. I have added the new feature in #45; please have a check on it. |
Hi, Felix, The new PR is added as #46, please have a check. |
PR is merged. |
Hi! Felix,
I think there might be an issue with the burgers equation.
The convection term of the burgers equation is defined as
However, according to Wikipedia, the definition should be
Note that$$u \cdot \nabla u = \frac{1}{2} \nabla \cdot \left( u \otimes u \right) $$ only hold for 1d case. For high-dimensional cases,
For example, in 3d case the x component of$\nabla \cdot \left( u \otimes u \right)$ is:
while the x component of$u \cdot \nabla u$ is only the first part, i.e.,
In a word,$$u \cdot \nabla u = \nabla \cdot \left( u \otimes u \right) $$ if u is divergence-free, i.e., $\nabla \cdot u =0$ . Otherwise $u \cdot \nabla u=\nabla \cdot \left( u \otimes u \right) - u\nabla \cdot u \neq \frac{1}{2}\nabla \cdot \left( u \otimes u \right)$
The text was updated successfully, but these errors were encountered: