template<
class R,
class Q = R,
class P = std::map<size_t, typename R::value_type>>
class molpro::linalg::itsolv::LinearEigensystemDavidson< R, Q, P >
One specific implementation of LinearEigensystem using Davidson's algorithm with modifications to manage near linear dependencies, and consequent numerical noise, in candidate expansion vectors.
TODO add more documentation and examples
- Template Parameters
-
|
| | LinearEigensystemDavidson (const std::shared_ptr< ArrayHandlers< R, Q, P > > &handlers=std::make_shared< molpro::linalg::itsolv::ArrayHandlers< R, Q, P > >(), const std::shared_ptr< Logger > &logger_=std::make_shared< Logger >()) |
| |
| bool | nonlinear () const override |
| |
| size_t | end_iteration (const VecRef< R > ¶meters, const VecRef< R > &action) override |
| | Proposes new parameters for the subspace from the preconditioned residuals.
|
| |
| size_t | end_iteration (std::vector< R > ¶meters, std::vector< R > &action) override |
| |
| size_t | end_iteration (R ¶meters, R &actions) override |
| |
| void | finalize () override |
| |
| void | precondition (std::vector< R > ¶meters, std::vector< R > &action) const |
| | Applies the Davidson preconditioner.
|
| |
| std::vector< scalar_type > | eigenvalues () const override |
| |
| virtual std::vector< scalar_type > | working_set_eigenvalues () const override |
| |
| void | set_value_errors () override |
| | Implementation class should overload this to set errors in the current values (e.g. change in eigenvalues)
|
| |
| void | report (std::ostream &cout, bool endl=true) const override |
| |
| void | set_reset_D (size_t n) |
| | Set the period in iterations for resetting the D space.
|
| |
| size_t | get_reset_D () const |
| |
| void | set_reset_D_maxQ_size (size_t n) |
| | Set the maximum size of Q space after resetting the D space.
|
| |
| int | get_reset_D_maxQ_size () const |
| |
| std::size_t | get_max_size_qspace () const |
| |
| void | set_max_size_qspace (std::size_t n) |
| |
| std::size_t | get_min_size_qspace () const |
| |
| void | set_min_size_qspace (std::size_t n) |
| |
| void | set_hermiticity (bool hermitian) override |
| |
| bool | get_hermiticity () const override |
| |
| void | set_options (const Options &options) override |
| |
| std::shared_ptr< Options > | get_options () const override |
| |
| | IterativeSolverTemplate ()=delete |
| |
| | IterativeSolverTemplate (const IterativeSolverTemplate< Solver, R, Q, P > &)=delete |
| |
| | IterativeSolverTemplate (IterativeSolverTemplate< Solver, R, Q, P > &&) noexcept=default |
| |
| IterativeSolverTemplate< Solver, R, Q, P > & | operator= (const IterativeSolverTemplate< Solver, R, Q, P > &)=delete |
| |
| IterativeSolverTemplate< Solver, R, Q, P > & | operator= (IterativeSolverTemplate< Solver, R, Q, P > &&) noexcept=default |
| |
| void | set_logger (std::shared_ptr< Logger > logger) override |
| |
| Logger & | logger () override |
| |
| int | add_vector (const VecRef< R > ¶meters, const VecRef< R > &actions) override |
| |
| int | add_vector (std::vector< R > ¶meters, std::vector< R > &actions) override |
| |
| int | add_vector (R ¶meters, R &actions, value_type value=0) override |
| |
| size_t | add_p (const CVecRef< P > &pparams, const array::Span< value_type > &pp_action_matrix, const VecRef< R > ¶meters, const VecRef< R > &actions, fapply_on_p_type apply_p) override |
| |
| void | clearP () override |
| |
| void | solution (const std::vector< int > &roots, const VecRef< R > ¶meters, const VecRef< R > &residual) override |
| |
| void | solution (const std::vector< int > &roots, std::vector< R > ¶meters, std::vector< R > &residual) override |
| |
| void | solution (R ¶meters, R &residual) override |
| |
| void | solution_params (const std::vector< int > &roots, std::vector< R > ¶meters) override |
| |
| void | solution_params (const std::vector< int > &roots, const VecRef< R > ¶meters) override |
| |
| void | solution_params (R ¶meters) override |
| |
| std::vector< size_t > | suggest_p (const CVecRef< R > &solution, const CVecRef< R > &residual, size_t max_number, value_type_abs threshold) override |
| |
| const std::vector< int > & | working_set () const override |
| |
| size_t | n_roots () const override |
| |
| void | set_n_roots (size_t roots) override |
| |
| void | set_options (const Options &options) override |
| |
| std::shared_ptr< Options > | get_options () const override |
| |
| const std::vector< value_type_abs > & | errors () const override |
| |
| const Statistics & | statistics () const override |
| |
| void | report (std::ostream &cout, bool endl=true) const override |
| |
| void | iteration_report () const |
| |
| void | summary_report () const |
| |
| void | report () const override |
| |
| void | set_convergence_threshold (value_type_abs thresh) override |
| |
| value_type_abs | convergence_threshold () const override |
| |
| void | set_convergence_threshold_value (value_type_abs thresh) override |
| |
| value_type_abs | convergence_threshold_value () const override |
| |
| void | set_verbosity (Verbosity v) override |
| |
| void | set_verbosity (int v) override |
| |
| Verbosity | get_verbosity () const override |
| |
| void | set_max_iter (int n) override |
| |
| int | get_max_iter () const override |
| |
| void | set_max_p (int n) override |
| |
| int | get_max_p () const override |
| |
| void | set_p_threshold (value_type_abs threshold) override |
| |
| value_type_abs | get_p_threshold () const override |
| |
| const subspace::Dimensions & | dimensions () const override |
| | Access dimensions of the subspace.
|
| |
| scalar_type | value () const override |
| |
| void | set_profiler (molpro::profiler::Profiler &profiler) override |
| |
| const std::shared_ptr< molpro::profiler::Profiler > & | profiler () const override |
| |
| bool | solve (const VecRef< R > ¶meters, const VecRef< R > &actions, const Problem< R > &problem, bool generate_initial_guess=false) override |
| |
| bool | solve (R ¶meters, R &actions, const Problem< R > &problem, bool generate_initial_guess=false) override |
| |
| bool | solve (std::vector< R > ¶meters, std::vector< R > &actions, const Problem< R > &problem, bool generate_initial_guess=false) override |
| |
| bool | test_problem (const Problem< R > &problem, R &v0, R &v1, int verbosity, value_type_abs threshold) const override |
| |