trixi-framework / trixi-framework/Trixi.jl

Second-Order Finite Volume Subcell for Nonconservative Systems

Open
#2,758 1 comment 0 reactions 0 assignees View on GitHub
enhancement
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.