-
Notifications
You must be signed in to change notification settings - Fork 114
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
Remove normal_direction_ll
in nonconservative terms
#2049
Comments
If I remember correctly, wasn't the reason we needed |
I do not remember exactly why we needed the We can do some testing for EC and/or EOC for a mesh with hanging nodes and the two available strategies discussed by Patrick above. The main thing I am not sure of is if the sub-cell shock capturing that @amrueda and @bennibolm still requires this flexibilty for the nonconservative to have the |
@andrewwinters5000 I can run some tests for this. I expect that for nonconforming the normal direction does not make a difference, since we pass the same normal directions at interfaces / mortars (https://github.com/trixi-framework/Trixi.jl/blob/main/src/solvers/dgsem_p4est/dg_2d.jl#L557) |
The subcell shock-capturing methods require the _ll and _average normal directions available only if the non-conservative terms are dependent on these directions. Specifically, the methods introduced in #1670 (currently applicable only to tree meshes) necessitate the separate evaluation of the local (_ll) and symmetric components of the non-conservative terms. In the case of the flux_nonconservative_powell method, the flux-differencing formula remains valid if the metric term is shifted from the local (_ll) component to the symmetric part of the GLM non-conservative term. The proofs for EC/ES would remain valid after converting normal_direction_ll to normal_direction_average. However, I am not sure of what is the impact of this change on the robustness of the schemes. I have already observed that some forms of the non-conservative terms are more robust than others. For example, while implementing #1670, I found that although the Trixi-standard form and the local*symmetric form of the non-conservative terms are algebraically equivalent for conforming meshes, the former is more robust in some tests with non-conforming meshes.
EC/ES tests with non-conforming meshes require EC/ES mortars. Do we already have EC/ES mortars in Trixi? |
Aha, right. No the EC/ES mortars are not available in |
It's good to know that it wouldn't interfere with the subcell shock-capturing. Since the implementation uses different functions for symmetric and local parts, you could probably also still use different normal directions and just pass them directly from the kernel.
There might be some effect on the volume term from changing the normal direction, but for nonconforming we pass the same normal direction for |
Following from our discussion, changing to |
Here is a first implementation of the subcell shock-capturing for non-conservative systems using the structured mesh in 2D #2051. If we change the normal directions to |
In the Trixi meeting we discussed, that we could split the problem in two steps:
After implementing step one the implementations with/without subcell shock-capturing will be slightly different ( |
Thanks, @patrickersing! |
The nonconservative terms can currently depend on both
normal_direction_ll
andnormal_direction_average
.After merging #2038 the nonconservative terms for the SWE now only depend on
normal_direction_average
.The only other place where
normal_direction_ll
occurs is theflux_nonconservative_powell
inideal_glm_mhd
. I am curious if we could also replacenormal_direction_ll
here with the averaged one.For entropy conservation it shouldn't matter which normal direction we use (see https://doi.org/10.1016/j.jcp.2018.06.027, C.15-C.17). Running
unstructured_2d_dgsem/elixir_mhd_ec.jl
also confirms entropy conservation usingnormal_direction_average
.Are there any other considerations why we should use
normal_direction_ll
instead ofnormal_direction_average
?If we only needed to pass
normal_direction_average
, we could unify the function signature of conservative and nonconservative fluxes and could then also use the same boundary condition, which could fix #1445.The text was updated successfully, but these errors were encountered: