trixi-framework / trixi-framework/Trixi.jl

Adding more user controls

Open
#2,148 10 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.