Uni20
Asynchronous tensor and runtime library.
Loading...
Searching...
No Matches
Classes | Namespaces | Functions
krylov_exponential.hpp File Reference
#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>
Include dependency graph for krylov_exponential.hpp:
This graph shows which files directly or indirectly include this file:

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 &params, 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 &params)
 
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 &params={})
 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 &params={})
 Approximate exp(t A) v for a nonsymmetric matrix-free operator.