trixi-framework / trixi-framework/Trixi.jl
Adding more user controls
- Dominant language
- Julia
- Stars
- 731
- Forks
- 166
- Avg merge
- 2d 18h
- Merged PRs (30d)
- 25
Description
Hi all, sure you've seen my slack messages.
`Trixi.jl` has a great user interface and it's very flexible. However, anyone who is visiting the `Trixi.jl` page and is actually using it for research is at least familiar with the basics of Spectral Elements and the Discontinuous Galerkin Method and will probably be extremely familiar with numerical methods (linear and nonlinear solvers). I think the one thing that `Trixi.jl` is missing is the flexibility and malleability to customize the solving algorithms for each term. For example, if one wants to treat a linear terms in a different manner than nonlinear. We also need more flexibility in how to individually treat the hyperbolic and parabolic terms.
As much as I like the `DifferentialEquations.jl` , it assumes far too much and it is not flexible for new problems and equations, at least from a surface user view.
**Suggestions:**
- Julia has `LinearSolve.jl` and `NonlinearSolve.jl` . Allowing the flexibility to use these packages will be extremely useful
- For a linear term to be solved explicitly,` semidiscretization() ` should give either the matrix operator and it's inverse, a matrix free operator and its matrix free inverse (this can either be `LinearMaps.jl` or `LinearOperators.jl` . For a term that needs to be solved implicitly (usually nonlinear but could be parabolic terms) it should return a `semidiscretization()` should return a nonlinear function to be used in `SciMLBase.NonlinearProblem` or `SciMLBase.NonlinearFunction`
Dr. Doering suggested it be part of `rhs!` and a `rhs_parabolic!`. Additionally, matrix formulations are definitely costly and I think more people would be interested in iterative solvers like `Krylov.jl`
Contributor guide
Assessment
This issue has not been assessed yet.