trixi-framework / trixi-framework/Trixi.jl

TrixiStateVector for distributed matrix-free implicit integration

Open
#2,673 1 comment 1 reaction 1 assignee Claimed by @vchuravy View on GitHub
enhancement parallelization
Dominant language
Julia
Stars
731
Forks
167
Avg merge
2d 18h
Merged PRs (30d)
25

Description

Currently we use Julia's default `Array` type for the state variables and pass a custom norm to the time integrators to implement MPI support.

For the matrix-free implicit examples that use Krylov schemes this is not sufficient to enabled distributed support for them.

Krylov.jl has support for custom workspaces and defines what operations the state vector needs to support https://jso.dev/Krylov.jl/stable/custom_workspaces/#Methods-to-overload-for-compatibility-with-Krylov.jl

Most notably we need to implement a distributed norm and dot product.

The idea would be to introduce a `TrixiStateVector` type that would implement a distributed norm and dot product and could perhaps used to parallelize other operations like broadcast inside the time integrators. Importantly we would unwrap that vector as soon as possible so that the interior code of Trixi has to change very little.

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.