Mundy: Multibody Nonlocal Dynamics Version of the Day
Loading...
Searching...
No Matches
mundy::EigenProblem< Backend, LinearOp, Workspace > Class Template Reference

The eigenvalue problem A q = lambda q for a square operator A, paired with a mutable workspace.

#include <eigenvalues.hpp>

Public Types

using backend_t = Backend
using linear_op_storage_t = ::mundy::storage<LinearOp>
using linear_op_t = typename linear_op_storage_t::value_type
using workspace_t = Workspace

Public Member Functions

 EigenProblem (Backend, LinearOp &&A)
 EigenProblem (Backend, LinearOp &&A, workspace_t workspace)
Backend backend () const
const auto & A () const
workspace_t & workspace () const
 Cached scratch state for evaluating A (mutated during a solve).

Member Typedef Documentation

◆ backend_t

template<typename Backend, typename LinearOp, typename Workspace = impl::workspace_for_t<std::remove_cvref_t<LinearOp>>>
using mundy::EigenProblem< Backend, LinearOp, Workspace >::backend_t = Backend

◆ linear_op_storage_t

template<typename Backend, typename LinearOp, typename Workspace = impl::workspace_for_t<std::remove_cvref_t<LinearOp>>>
using mundy::EigenProblem< Backend, LinearOp, Workspace >::linear_op_storage_t = ::mundy::storage<LinearOp>

◆ linear_op_t

template<typename Backend, typename LinearOp, typename Workspace = impl::workspace_for_t<std::remove_cvref_t<LinearOp>>>
using mundy::EigenProblem< Backend, LinearOp, Workspace >::linear_op_t = typename linear_op_storage_t::value_type

◆ workspace_t

template<typename Backend, typename LinearOp, typename Workspace = impl::workspace_for_t<std::remove_cvref_t<LinearOp>>>
using mundy::EigenProblem< Backend, LinearOp, Workspace >::workspace_t = Workspace

Constructor & Destructor Documentation

◆ EigenProblem() [1/2]

template<typename Backend, typename LinearOp, typename Workspace = impl::workspace_for_t<std::remove_cvref_t<LinearOp>>>
mundy::EigenProblem< Backend, LinearOp, Workspace >::EigenProblem ( Backend ,
LinearOp && A )
inline

◆ EigenProblem() [2/2]

template<typename Backend, typename LinearOp, typename Workspace = impl::workspace_for_t<std::remove_cvref_t<LinearOp>>>
mundy::EigenProblem< Backend, LinearOp, Workspace >::EigenProblem ( Backend ,
LinearOp && A,
workspace_t workspace )
inline

Member Function Documentation

◆ backend()

template<typename Backend, typename LinearOp, typename Workspace = impl::workspace_for_t<std::remove_cvref_t<LinearOp>>>
Backend mundy::EigenProblem< Backend, LinearOp, Workspace >::backend ( ) const
inline

◆ A()

template<typename Backend, typename LinearOp, typename Workspace = impl::workspace_for_t<std::remove_cvref_t<LinearOp>>>
const auto & mundy::EigenProblem< Backend, LinearOp, Workspace >::A ( ) const
inline

◆ workspace()

template<typename Backend, typename LinearOp, typename Workspace = impl::workspace_for_t<std::remove_cvref_t<LinearOp>>>
workspace_t & mundy::EigenProblem< Backend, LinearOp, Workspace >::workspace ( ) const
inline

One Problem must not back two concurrent solves; construct a fresh Problem per concurrent solve.