iterative-solver 0.0
ISubspaceSolver.h
1#ifndef LINEARALGEBRA_SRC_MOLPRO_LINALG_ITSOLV_SUBSPACE_ISUBSPACESOLVER_H
2#define LINEARALGEBRA_SRC_MOLPRO_LINALG_ITSOLV_SUBSPACE_ISUBSPACESOLVER_H
3#include <molpro/linalg/array/ArrayHandler.h>
4#include <molpro/linalg/itsolv/subspace/IXSpace.h>
5
7
14template <class RT, class QT, class PT>
16 using R = RT;
17 using Q = QT;
18 using P = PT;
21 virtual ~ISubspaceSolver() = default;
22
28 virtual void solve(IXSpace<R, Q, P>& xspace, size_t nroots_max) = 0;
29
35 virtual void set_error(int root, value_type_abs error) = 0;
41 virtual void set_error(const std::vector<int>& roots, const std::vector<value_type_abs>& errors) = 0;
43 virtual const Matrix<value_type>& solutions() const = 0;
45 virtual const std::vector<value_type>& eigenvalues() const = 0;
47 virtual const std::vector<value_type_abs>& errors() const = 0;
49 virtual size_t size() const = 0;
50};
51
52} // namespace molpro::linalg::itsolv::subspace
53#endif // LINEARALGEBRA_SRC_MOLPRO_LINALG_ITSOLV_SUBSPACE_ISUBSPACESOLVER_H
decltype(value_type_L{} *value_type_R{}) value_type
Definition: ArrayHandler.h:181
decltype(check_abs< value_type >()) value_type_abs
Definition: ArrayHandler.h:182
Definition: PSpace.h:7
Manages solution of the subspace problem and storage of those solutions.
Definition: ISubspaceSolver.h:15
virtual void set_error(int root, value_type_abs error)=0
Update the error associated with a given root.
typename array::ArrayHandler< R, R >::value_type value_type
Definition: ISubspaceSolver.h:19
virtual const std::vector< value_type_abs > & errors() const =0
Access errors corresponding to each solution.
typename array::ArrayHandler< R, R >::value_type_abs value_type_abs
Definition: ISubspaceSolver.h:20
virtual void solve(IXSpace< R, Q, P > &xspace, size_t nroots_max)=0
Solve the subspace problem.
PT P
Definition: ISubspaceSolver.h:18
virtual const std::vector< value_type > & eigenvalues() const =0
Access eigenvalues from the last solve() call.
QT Q
Definition: ISubspaceSolver.h:17
virtual void set_error(const std::vector< int > &roots, const std::vector< value_type_abs > &errors)=0
Update errors for a group of roots.
virtual size_t size() const =0
Number of solutions stored in this object.
RT R
Definition: ISubspaceSolver.h:16
virtual const Matrix< value_type > & solutions() const =0
Access solutions from the last solve() call.