|
Uni20
Asynchronous tensor and runtime library.
|
Concept for opaque vector-space operations required by Krylov solvers. More...
#include <matrix_free.hpp>
Concept for opaque vector-space operations required by Krylov solvers.
Native Krylov solvers keep solver state local to each call and do not use hidden global workspaces. They are therefore reentrant when each solve receives independent operation/vector state, and nested native solves from inside a matrix-free callback are valid. If an implementation is shared across concurrent solves, that implementation is responsible for synchronizing its own mutable backend/cache state. Krylov callbacks use the local convention that mutable/output vector arguments appear first, for example copy(y, x), axpy(y, alpha, x), and matvec(y, x). inner_product(x, y) returns the host scalar for <x,y>; for complex scalar types it is conjugate-linear in x and linear in y. Norms are exposed separately through optional norm(x), which returns a real host scalar.