trixi-framework / trixi-framework/Trixi.jl
Second-Order Finite Volume Subcell for Nonconservative Systems
- Dominant language
- Julia
- Stars
- 731
- Forks
- 167
- Avg merge
- 2d 18h
- Merged PRs (30d)
- 25
Description
In #2022 #2695 #2718 #2734 #2755 the second-order finite volume scheme on subcells was introduced. Currently, this is limited to conservative systems only, see e.g.
https://github.com/trixi-framework/Trixi.jl/blob/7e3481ef91e655da964d551e9b72c8d1aaf68314/src/solvers/dgsem_tree/dg_1d.jl#L310-L312
with flux computation
https://github.com/trixi-framework/Trixi.jl/blob/7e3481ef91e655da964d551e9b72c8d1aaf68314/src/solvers/dgsem_tree/dg_1d.jl#L365-L369
It would be trivial to extend the flux computation with a non-conservative part like here:
https://github.com/trixi-framework/Trixi.jl/blob/7e3481ef91e655da964d551e9b72c8d1aaf68314/src/solvers/dgsem_tree/dg_1d.jl#L295-L300
However, the choice of variables that should be limited is not trivial. Consider for instance the quasi 1D compressible Euler equations, the only 1D nonconservative system in the main repository of Trixi. This carries the nozzle width `a`
https://github.com/trixi-framework/Trixi.jl/blob/7e3481ef91e655da964d551e9b72c8d1aaf68314/src/equations/compressible_euler_quasi_1d.jl#L40-L42
which is included in the variables
https://github.com/trixi-framework/Trixi.jl/blob/7e3481ef91e655da964d551e9b72c8d1aaf68314/src/equations/compressible_euler_quasi_1d.jl#L65-L70
and would thus also be limited
https://github.com/trixi-framework/Trixi.jl/blob/7e3481ef91e655da964d551e9b72c8d1aaf68314/src/solvers/dgsem_tree/dg_1d.jl#L359-L362
This is problematic (I conducted preliminary studies which proved difficult - even when excluding `a` from the limited variables). So some more work is required here. I guess the same is true for MHD due to the divergence cleaning speed `psi`.
Contributor guide
Research direction
Start by reading the second-order subcell implementation in src/solvers/dgsem_tree/dg_1d.jl, especially the conservative flux and limited-variable sections linked in the issue. Compare this with the nonconservative flux handling there and inspect src/equations/compressible_euler_quasi_1d.jl. Done means supporting nonconservative systems without incorrectly limiting variables such as the nozzle width, with the quasi-1D Euler case working reliably.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- julia
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100