trixi-framework / trixi-framework/Trixi.jl

Notes on parabolic terms

Open
#1,147 21 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Julia
Stars
731
Forks
167
Avg merge
2d 18h
Merged PRs (30d)
25

Description

This is basically taken from #1136. Currently, our idea is to merge the `DGMulti` setup from that PR into `dev`, draft a corresponding `TreeMesh` & `DGSEM` version in another PR, and see how it looks for Navier-Stokes. When that's okay, we can go ahead and merge `dev` into `main` to finally get support for parabolic terms in Trixi.jl.

- [x] `TreeMesh` version with `DGSEM`
- [x] BR1
- [x] LDG #2333
- [x] Mortars
- [x] AMR for `TreeMesh`
- [x] AMR for `P4estMesh`
- [x] 1D
- [x] 2D
- [x] 3D #1239
- [x] `P4estMesh`
- [x] LDG
- [x] Interfaces #2689
- [x] Mortars #2712
- [ ] `StructuredMesh`
- [x] Navier-Stokes
- [x] Decide on which non-dimensional scaling to use.
- [ ] Implementation of simple algebraic turbulence models that act on the viscosity
- [x] Add a parabolic solver field (or at least a way to specify parabolic numerical parameters)
- [x] Add parabolic penalty terms which depend on `jump(u)`
- [ ] Where should penalty terms live: equations, solver, or the elixir itself? These terms will probably need to be specialized for every single equation.
- [x] Should we have "default" BC behavior (e.g., "boundary_condition_use_inner_state / boundary_condition_do_nothing")? Answer: no. The user should be required to specify this explicitly.
- [x] Should the viscous flux depend on `orientation` (i.e., compute `x` and `y` components separately)?
- [x] Decide how general we want the BCs to be
- What data should be made available to parabolic BCs? Solution values? Gradient values? Viscous flux values?
- Right now, we keep it simple for now, just pass in solution values
- [x] Docstrings
- [x] Documentation, examples, tutorial
- [x] Explain `Gradient`/`Divergence` boundary conditions in docs
- [ ] Add a Literate tutorial for compressible Navier-Stokes
- [ ] Naming things
- [x] `grad_u` (current) vs. `gradients` or `gradients_u`
- [x] `no_boundary_condition` (current) vs. `boundary_condition_do_nothing` or something else (what?). Answer: `boundary_condition_do_nothing`
- [ ] Types for viscous methods like BR1, LDG? Current naming is `ViscousFormulation***` but this gets pretty long.
- [ ] Gradient variables
- [ ] Keep track of number of gradient variables and [output which gradient variables](https://github.com/trixi-framework/Trixi.jl/pull/1165#discussion_r893068158) are used from the parabolic equations constructor.
- [ ] Address potential inefficiencies of converting back and forth the gradient variables (see also [here](https://github.com/trixi-framework/Trixi.jl/pull/1239#discussion_r1029497270))
- https://github.com/trixi-framework/Trixi.jl/pull/3027
- [ ] Avoid need for defining diffusivity through global functions https://github.com/trixi-framework/Trixi.jl/issues/1503
- [x] Add an "enstrophy" callback as a proof of concept issue with "combined" equations. #1239
- [x] Add *experimental* notes to all exported and/or docstring'd methods/types.
- [x] Rename `elixir_navier_stokes_xxx.jl` to `elixir_navierstokes_xxx.jl` for consistency (e.g., with `elixir_shallowwater_xxx.jl`).
- [x] `StepsizeCallback` with viscous CFL condition
- [x] `TreeMesh`
- [x] 1D #2035
- [x] 2D/3D #2586
- [x] `P4estMesh` https://github.com/trixi-framework/Trixi.jl/pull/2696

Contributor guide

Open the contributing guide

Research direction

No source files or tests are named. Start by reviewing the unchecked StructuredMesh, turbulence-model, naming, gradient-variable, and Literate tutorial items, then read the referenced issues and pull requests to determine which scope remains current. Done is not defined for the issue as a whole, so clarify one concrete deliverable before starting.

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
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.