-
Notifications
You must be signed in to change notification settings - Fork 135
Open
Labels
Description
#2609 implemented
Trixi.jl/src/semidiscretization/semidiscretization_hyperbolic_parabolic.jl
Lines 364 to 382 in b5ecc2a
| """ | |
| linear_structure(semi::SemidiscretizationHyperbolicParabolic; | |
| t0 = zero(real(semi))) | |
| Wraps the right-hand side operator of the hyperbolic-parabolic semidiscretization `semi` | |
| at time `t0` as an affine-linear operator given by a linear operator `A` | |
| and a vector `b`: | |
| ```math | |
| \\partial_t u(t) = A u(t) - b. | |
| ``` | |
| Works only for linear equations, i.e., equations with `have_constant_speed(equations) == True()`. | |
| This has the benefit of greatly reduced memory consumption compared to constructing | |
| the full system matrix explicitly, as done for instance in | |
| [`jacobian_fd`](@ref) and [`jacobian_ad_forward`](@ref). | |
| The returned linear operator `A` is a matrix-free representation which can be | |
| supplied to iterative solvers from, e.g., [Krylov.jl](https://github.com/JuliaSmoothOptimizers/Krylov.jl). | |
| """ |
which, together with the LDG parabolic solver enables solving elliptic equations on TreeMeshes.
Thus, one could revisit the Euler-Gravity example and switch out the explicit iteration into steady state of the hyperbolic diffusion equations.