iterative-solver 0.0
 
Loading...
Searching...
No Matches
molpro::linalg::itsolv::subspace::SubspaceSolverRSPT< RT, QT, PT > Class Template Reference

#include <SubspaceSolverRSPT.h>

Inheritance diagram for molpro::linalg::itsolv::subspace::SubspaceSolverRSPT< RT, QT, PT >:
Collaboration diagram for molpro::linalg::itsolv::subspace::SubspaceSolverRSPT< RT, QT, PT >:

Public Types

using value_type = typename ISubspaceSolver< RT, QT, PT >::value_type
 
using value_type_abs = typename ISubspaceSolver< RT, QT, PT >::value_type_abs
 
using R = typename ISubspaceSolver< RT, QT, PT >::R
 
using Q = typename ISubspaceSolver< RT, QT, PT >::Q
 
using P = typename ISubspaceSolver< RT, QT, PT >::P
 
- Public Types inherited from molpro::linalg::itsolv::subspace::SubspaceSolverLinEig< RT, QT, PT >
using value_type = typename ISubspaceSolver< RT, QT, PT >::value_type
 
using value_type_abs = typename ISubspaceSolver< RT, QT, PT >::value_type_abs
 
using R = typename ISubspaceSolver< RT, QT, PT >::R
 
using Q = typename ISubspaceSolver< RT, QT, PT >::Q
 
using P = typename ISubspaceSolver< RT, QT, PT >::P
 
- Public Types inherited from molpro::linalg::itsolv::subspace::ISubspaceSolver< RT, QT, PT >
using R = RT
 
using Q = QT
 
using P = PT
 
using value_type = typename array::ArrayHandler< R, R >::value_type
 
using value_type_abs = typename array::ArrayHandler< R, R >::value_type_abs
 

Public Member Functions

 SubspaceSolverRSPT (std::shared_ptr< Logger > logger)
 
void solve (IXSpace< R, Q, P > &xspace, const size_t nroots_max) override
 Solve the subspace problem.
 
- Public Member Functions inherited from molpro::linalg::itsolv::subspace::SubspaceSolverLinEig< RT, QT, PT >
 SubspaceSolverLinEig (std::shared_ptr< Logger > logger)
 
void set_error (int root, value_type_abs error) override
 Set error value for solution root
 
void set_error (const std::vector< int > &roots, const std::vector< value_type_abs > &errors) override
 Update errors for a group of roots.
 
const Matrix< value_type > & solutions () const override
 Access solutions from the last solve() call.
 
const std::vector< value_type > & eigenvalues () const override
 Access eigenvalues from the last solve() call.
 
const std::vector< std::pair< std::size_t, value_type > > & imag_eigval_components () const
 
const std::vector< value_type_abs > & errors () const override
 Access errors corresponding to each solution.
 
size_t size () const override
 Number of solutions.
 
void set_logger (std::shared_ptr< Logger > logger) override
 
void set_hermiticity (bool hermitian)
 Set Hermiticity of the subspace.
 
bool get_hermiticity ()
 
void set_augmented_hessian (value_type_abs parameter)
 Set value of augmented hessian parameter. If 0, than augmented Hessian is not used.
 
value_type_abs get_augmented_hessian ()
 
- Public Member Functions inherited from molpro::linalg::itsolv::subspace::ISubspaceSolver< RT, QT, PT >
virtual ~ISubspaceSolver ()=default
 

Additional Inherited Members

- Public Attributes inherited from molpro::linalg::itsolv::subspace::SubspaceSolverLinEig< RT, QT, PT >
value_type_abs m_svd_solver_threshold = precision_scaled<value_type_abs>(1e-14)
 threshold to select null space during SVD in eigenproblem, rescaled from double to the working precision
 
- Protected Member Functions inherited from molpro::linalg::itsolv::subspace::SubspaceSolverLinEig< RT, QT, PT >
int convert_verbosity (log::Verbosity verbosity)
 
void solve_eigenvalue (IXSpace< R, Q, P > &xspace, const size_t nroots_max)
 
void solve_linear_equations (IXSpace< R, Q, P > &xspace)
 
- Protected Attributes inherited from molpro::linalg::itsolv::subspace::SubspaceSolverLinEig< RT, QT, PT >
Matrix< value_type > m_solutions
 solution matrix with row vectors
 
std::vector< value_type > m_eigenvalues
 eigenvalues
 
std::vector< std::pair< std::size_t, value_type > > m_imag_eigval_comps
 eigenvalues
 
std::vector< value_type_abs > m_errors
 errors in subspace solutions
 
std::shared_ptr< Logger > m_logger {}
 
bool m_hermitian = false
 
value_type_abs m_augmented_hessian = 0
 value of augmented hessian parameter. If 0, than augmented Hessian is not used
 

Member Typedef Documentation

◆ P

◆ Q

◆ R

◆ value_type

◆ value_type_abs

Constructor & Destructor Documentation

◆ SubspaceSolverRSPT()

template<class RT , class QT , class PT >
molpro::linalg::itsolv::subspace::SubspaceSolverRSPT< RT, QT, PT >::SubspaceSolverRSPT ( std::shared_ptr< Logger >  logger)
inlineexplicit

Member Function Documentation

◆ solve()

template<class RT , class QT , class PT >
void molpro::linalg::itsolv::subspace::SubspaceSolverRSPT< RT, QT, PT >::solve ( IXSpace< R, Q, P > &  xspace,
const size_t  nroots_max 
)
inlineoverridevirtual

Solve the subspace problem.

Parameters
xspacedefinition of the subspace
nroots_maxmaximum number of roots to calculate

Reimplemented from molpro::linalg::itsolv::subspace::SubspaceSolverLinEig< RT, QT, PT >.