Skip to content

TrixiStateVector for distributed matrix-free implicit integration #2673

@vchuravy

Description

@vchuravy

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.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or requestparallelizationRelated to MPI, threading, tasks etc.

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions