Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Parabolic AMR: Open discussions #1690

Open
DanielDoehring opened this issue Oct 25, 2023 · 1 comment
Open

Parabolic AMR: Open discussions #1690

DanielDoehring opened this issue Oct 25, 2023 · 1 comment
Assignees

Comments

@DanielDoehring
Copy link
Contributor

DanielDoehring commented Oct 25, 2023

To summarize the discussions in #1629 I list some open points:

  • Outer datastructures for non-internal variables in ViscousContainers:

    # Using an outer fixed-size datastructure leads to nasty implementations,
    # see https://github.com/trixi-framework/Trixi.jl/pull/1629#discussion_r1355293953.
    # Also: This does not result in speed up compared to using tuples for the internal
    # datastructures, see
    # https://github.com/trixi-framework/Trixi.jl/pull/1629#discussion_r1363352188.
    gradients::Vector{Array{uEltype, 4}}
    flux_viscous::Vector{Array{uEltype, 4}}
    # internal `resize!`able storage
    _u_transformed::Vector{uEltype}
    # Use Tuple for outer, fixed-size datastructure
    _gradients::Tuple{Vector{uEltype}, Vector{uEltype}}
    _flux_viscous::Tuple{Vector{uEltype}, Vector{uEltype}}

    Usage of Tuple also for noninternal datastructures?

  • Different reinitialize_containers! for parabolic cache (?) to avoid the if in

    if hasproperty(cache, :mortars) # cache_parabolic does not carry mortars
    @unpack mortars = cache
    resize!(mortars, count_required_mortars(mesh, leaf_cell_ids))
    init_mortars!(mortars, elements, mesh)
    end

  • Alternative to specialization via flux_viscous?

    # `cache` is the hyperbolic cache, i.e., in particular not `cache_parabolic`.
    # This is because mortar handling is done in the (hyperbolic) `cache`.
    # Specialization `flux_viscous::Vector{Array{uEltype, 4}}` needed since
    #`prolong2mortars!` in dg_2d.jl is used for both purely hyperbolic and
    # hyperbolic-parabolic systems.
    function prolong2mortars!(cache, flux_viscous::Vector{Array{uEltype, 4}},

@DanielDoehring
Copy link
Contributor Author

Corresponding PR: #1754

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants