|
Uni20
Asynchronous tensor and runtime library.
|
#include <uni20/krylov/dense_linalg.hpp>#include <uni20/krylov/dense_subspace.hpp>#include <uni20/krylov/matrix_free.hpp>#include <uni20/krylov/nonsymmetric_arnoldi.hpp>#include <uni20/krylov/symmetric_lanczos.hpp>#include <algorithm>#include <cmath>#include <concepts>#include <cstddef>#include <limits>#include <optional>#include <stdexcept>#include <type_traits>#include <utility>#include <vector>Go to the source code of this file.
Classes | |
| struct | uni20::krylov::KrylovExponentialDiagnostics< Scalar > |
| Optional diagnostic state for Krylov exponential actions. More... | |
| struct | uni20::krylov::KrylovExponentialParams< Scalar > |
| Parameters for Krylov exponential actions. More... | |
| struct | uni20::krylov::KrylovExponentialResult< Scalar, Vector > |
Matrix-free approximation to exp(t A) v. More... | |
Namespaces | |
| namespace | uni20 |
| namespace | uni20::krylov |
Functions | |
| int | uni20::krylov::default_adaptive_exponential_krylov_dimension (std::size_t problem_dimension) |
| Return the default adaptive Krylov projection cap for exponential actions. | |
| int | uni20::krylov::default_exponential_krylov_dimension (std::size_t problem_dimension) |
| Return the default Krylov projection dimension for exponential actions. | |
| template<uni20::Real Scalar> | |
| int | uni20::krylov::effective_exponential_krylov_dimension (KrylovExponentialParams< Scalar > const ¶ms, std::size_t problem_dimension) |
| Return the effective Krylov projection dimension for exponential actions. | |
| template<uni20::Real Scalar> | |
| bool | uni20::krylov::exponential_adaptive_acceptance_enabled (KrylovExponentialParams< Scalar > const ¶ms) |
| template<uni20::LapackScalar Scalar, typename TimeScalar , typename Vector , KrylovMatrixFreeOperator< Vector, Scalar > Ops> requires (std::constructible_from<uni20::make_real_t<Scalar>, TimeScalar> || (uni20::Complex<Scalar> && std::constructible_from<Scalar, TimeScalar>)) | |
| KrylovExponentialResult< Scalar, Vector > | uni20::krylov::hermitian_krylov_exponential_action (Ops &ops, Vector const &initial, TimeScalar time, KrylovExponentialParams< uni20::make_real_t< Scalar > > const ¶ms={}) |
Approximate exp(t A) v for a Hermitian matrix-free operator. | |
| template<uni20::LapackScalar Scalar, typename TimeScalar , typename Vector , KrylovMatrixFreeOperator< Vector, Scalar > Ops> requires (std::constructible_from<uni20::make_real_t<Scalar>, TimeScalar> || (uni20::Complex<Scalar> && std::constructible_from<Scalar, TimeScalar>)) | |
| KrylovExponentialResult< Scalar, Vector > | uni20::krylov::nonsymmetric_krylov_exponential_action (Ops &ops, Vector const &initial, TimeScalar time, KrylovExponentialParams< uni20::make_real_t< Scalar > > const ¶ms={}) |
Approximate exp(t A) v for a nonsymmetric matrix-free operator. | |