Skip to content

Revisit EulerGravity with LDG, linear_structure & Krylov.jl #2631

@DanielDoehring

Description

@DanielDoehring

#2609 implemented

"""
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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions