Base class defining the interface common to all iterative solvers. More...
#include <IterativeSolver.h>
Base class defining the interface common to all iterative solvers.
As well as through the interface, some behaviour (profiling, and tuning of BLAS operations) is influenced by the contents of a global molpro::Options object, which defaults to molpro::Options("ITERATIVE-SOLVER", "").
R | container for "working-set" vectors. These are typically implemented in memory, and are created by the client program. R vectors are never created inside IterativeSolver. |
Q | container for other vectors. These are typically implemented on backing store and/or distributed across processors. IterativeSolver constructs a number of instances of Q containers to store history. |
P | a class that specifies the definition of a single P-space vector, which is a strictly sparse vector in the underlying space. |
Public Types | |
using | value_type = typename R::value_type |
The underlying type of elements of vectors. More... | |
using | scalar_type = typename array::ArrayHandler< R, Q >::value_type |
using | value_type_abs = typename array::ArrayHandler< R, R >::value_type_abs |
using | VectorP = std::vector< value_type > |
using | fapply_on_p_type = std::function< void(const std::vector< VectorP > &, const CVecRef< P > &, const VecRef< R > &)> |
Public Member Functions | |
virtual | ~IterativeSolver ()=default |
IterativeSolver ()=default | |
IterativeSolver (const IterativeSolver< R, Q, P > &)=delete | |
IterativeSolver< R, Q, P > & | operator= (const IterativeSolver< R, Q, P > &)=delete |
IterativeSolver (IterativeSolver< R, Q, P > &&) noexcept=default | |
IterativeSolver< R, Q, P > & | operator= (IterativeSolver< R, Q, P > &&) noexcept=default |
virtual bool | solve (const VecRef< R > ¶meters, const VecRef< R > &actions, const Problem< R > &problem, bool generate_initial_guess=false)=0 |
Simplified one-call solver. More... | |
virtual bool | solve (R ¶meters, R &actions, const Problem< R > &problem, bool generate_initial_guess=false)=0 |
virtual bool | solve (std::vector< R > ¶meters, std::vector< R > &actions, const Problem< R > &problem, bool generate_initial_guess=false)=0 |
virtual int | add_vector (const VecRef< R > ¶meters, const VecRef< R > &actions)=0 |
Take, typically, a current solution and residual, and add it to the solution space. More... | |
virtual int | add_vector (std::vector< R > ¶meters, std::vector< R > &action)=0 |
virtual int | add_vector (R ¶meters, R &action, value_type value=0)=0 |
virtual size_t | add_p (const CVecRef< P > &pparams, const array::Span< value_type > &pp_action_matrix, const VecRef< R > ¶meters, const VecRef< R > &action, fapply_on_p_type apply_p)=0 |
Add P-space vectors to the expansion set for linear methods. More... | |
virtual void | clearP ()=0 |
virtual void | solution (const std::vector< int > &roots, const VecRef< R > ¶meters, const VecRef< R > &residual)=0 |
Construct solution and residual for a given set of roots. More... | |
virtual void | solution_params (const std::vector< int > &roots, const VecRef< R > ¶meters)=0 |
Constructs parameters of selected roots. More... | |
virtual size_t | end_iteration (const VecRef< R > ¶meters, const VecRef< R > &residual)=0 |
Behaviour depends on the solver. More... | |
virtual bool | end_iteration_needed ()=0 |
signal whether end_iteration should be called More... | |
virtual std::vector< size_t > | suggest_p (const CVecRef< R > &solution, const CVecRef< R > &residual, size_t max_number, double threshold)=0 |
Get the solver's suggestion of which degrees of freedom would be best to add to the P-space. More... | |
virtual void | solution (const std::vector< int > &roots, std::vector< R > ¶meters, std::vector< R > &residual)=0 |
virtual void | solution (R ¶meters, R &residual)=0 |
virtual void | solution_params (const std::vector< int > &roots, std::vector< R > ¶meters)=0 |
virtual void | solution_params (R ¶meters)=0 |
virtual size_t | end_iteration (std::vector< R > ¶meters, std::vector< R > &action)=0 |
virtual size_t | end_iteration (R ¶meters, R &action)=0 |
virtual const std::vector< int > & | working_set () const =0 |
Working set of roots that are not yet converged. More... | |
virtual std::vector< scalar_type > | working_set_eigenvalues () const |
virtual size_t | n_roots () const =0 |
virtual void | set_n_roots (size_t nroots)=0 |
virtual const std::vector< scalar_type > & | errors () const =0 |
virtual const Statistics & | statistics () const =0 |
virtual void | report (std::ostream &cout, bool endl=true) const =0 |
Writes a report to cout output stream. More... | |
virtual void | report () const =0 |
Writes a report to std::cout. More... | |
virtual void | set_convergence_threshold (double thresh)=0 |
Sets the convergence threshold. More... | |
virtual double | convergence_threshold () const =0 |
Reports the convergence threshold. More... | |
virtual void | set_convergence_threshold_value (double thresh)=0 |
Sets the value convergence threshold. More... | |
virtual double | convergence_threshold_value () const =0 |
Reports the value convergence threshold. More... | |
virtual void | set_verbosity (Verbosity v)=0 |
virtual void | set_verbosity (int v)=0 |
virtual Verbosity | get_verbosity () const =0 |
virtual void | set_max_iter (int n)=0 |
virtual int | get_max_iter () const =0 |
virtual void | set_max_p (int n)=0 |
virtual int | get_max_p () const =0 |
virtual void | set_p_threshold (double thresh)=0 |
virtual double | get_p_threshold () const =0 |
virtual const subspace::Dimensions & | dimensions () const =0 |
virtual void | set_options (const Options &options)=0 |
virtual std::shared_ptr< Options > | get_options () const =0 |
virtual scalar_type | value () const =0 |
Report the function value for the current optimum solution. More... | |
virtual bool | nonlinear () const =0 |
Report whether the class is a non-linear solver. More... | |
virtual void | set_profiler (molpro::profiler::Profiler &profiler)=0 |
Attach a profiler in order to collect performance data. More... | |
virtual const std::shared_ptr< molpro::profiler::Profiler > & | profiler () const =0 |
virtual bool | test_problem (const Problem< R > &problem, R &v0, R &v1, int verbosity=0, double threshold=1e-5) const =0 |
Test a supplied problem class. More... | |
using molpro::linalg::itsolv::IterativeSolver< R, Q, P >::fapply_on_p_type = std::function<void(const std::vector<VectorP>&, const CVecRef<P>&, const VecRef<R>&)> |
Function type for applying matrix to the P space vectors and accumulating result in a residual
using molpro::linalg::itsolv::IterativeSolver< R, Q, P >::scalar_type = typename array::ArrayHandler<R, Q>::value_type |
The type of scalar products of vectors
using molpro::linalg::itsolv::IterativeSolver< R, Q, P >::value_type = typename R::value_type |
The underlying type of elements of vectors.
using molpro::linalg::itsolv::IterativeSolver< R, Q, P >::value_type_abs = typename array::ArrayHandler<R, R>::value_type_abs |
using molpro::linalg::itsolv::IterativeSolver< R, Q, P >::VectorP = std::vector<value_type> |
type for vectors projected on to P space, each element is a coefficient for the corresponding P space parameter
|
virtualdefault |
|
default |
|
delete |
|
defaultnoexcept |
|
pure virtual |
Add P-space vectors to the expansion set for linear methods.
Pparams | the vectors to add. Each Pvector specifies a sparse vector in the underlying space. The size of the P space must be at least the number of roots to be sought. |
pp_action_matrix | Matrix projected onto the existing+new, new P space. It should be provided as a 1-dimensional array, with the existing+new index running fastest. |
parameters | Used as scratch working space |
action | On exit, the residual of the interpolated solution. The contribution from the new, and any existing, P parameters is missing, and should be added in subsequently. |
apply_p | A function that evaluates the action of the matrix on vectors in the P space |
Implemented in molpro::linalg::itsolv::IterativeSolverTemplate< LinearEigensystem, R, R, std::map< size_t, typename R::value_type > >, molpro::linalg::itsolv::IterativeSolverTemplate< LinearEquations, R, R, std::map< size_t, typename R::value_type > >, and molpro::linalg::itsolv::IterativeSolverTemplate< Optimize, R, R, std::map< size_t, typename R::value_type > >.
|
pure virtual |
Take, typically, a current solution and residual, and add it to the solution space.
parameters | On input, the current solution or expansion vector. On exit, undefined. |
actions | On input, the residual for parameters (non-linear), or action of matrix on parameters (linear). On exit, a vector set that should be preconditioned before returning to end_iteration(). |
value | The value of the objective function for parameters. Used only in Optimize classes. |
Implemented in molpro::linalg::itsolv::IterativeSolverTemplate< LinearEigensystem, R, R, std::map< size_t, typename R::value_type > >, molpro::linalg::itsolv::IterativeSolverTemplate< LinearEquations, R, R, std::map< size_t, typename R::value_type > >, and molpro::linalg::itsolv::IterativeSolverTemplate< Optimize, R, R, std::map< size_t, typename R::value_type > >.
|
pure virtual |
Implemented in molpro::linalg::itsolv::IterativeSolverTemplate< LinearEigensystem, R, R, std::map< size_t, typename R::value_type > >, molpro::linalg::itsolv::IterativeSolverTemplate< LinearEquations, R, R, std::map< size_t, typename R::value_type > >, molpro::linalg::itsolv::IterativeSolverTemplate< Optimize, R, R, std::map< size_t, typename R::value_type > >, molpro::linalg::itsolv::OptimizeBFGS< R, Q, P >, and molpro::linalg::itsolv::OptimizeSD< R, Q, P >.
|
pure virtual |
Implemented in molpro::linalg::itsolv::IterativeSolverTemplate< LinearEigensystem, R, R, std::map< size_t, typename R::value_type > >, molpro::linalg::itsolv::IterativeSolverTemplate< LinearEquations, R, R, std::map< size_t, typename R::value_type > >, and molpro::linalg::itsolv::IterativeSolverTemplate< Optimize, R, R, std::map< size_t, typename R::value_type > >.
|
pure virtual |
Implemented in molpro::linalg::itsolv::IterativeSolverTemplate< LinearEigensystem, R, R, std::map< size_t, typename R::value_type > >, molpro::linalg::itsolv::IterativeSolverTemplate< LinearEquations, R, R, std::map< size_t, typename R::value_type > >, and molpro::linalg::itsolv::IterativeSolverTemplate< Optimize, R, R, std::map< size_t, typename R::value_type > >.
|
pure virtual |
Reports the convergence threshold.
Implemented in molpro::linalg::itsolv::IterativeSolverTemplate< LinearEigensystem, R, R, std::map< size_t, typename R::value_type > >, molpro::linalg::itsolv::IterativeSolverTemplate< LinearEquations, R, R, std::map< size_t, typename R::value_type > >, and molpro::linalg::itsolv::IterativeSolverTemplate< Optimize, R, R, std::map< size_t, typename R::value_type > >.
|
pure virtual |
Reports the value convergence threshold.
Implemented in molpro::linalg::itsolv::IterativeSolverTemplate< LinearEigensystem, R, R, std::map< size_t, typename R::value_type > >, molpro::linalg::itsolv::IterativeSolverTemplate< LinearEquations, R, R, std::map< size_t, typename R::value_type > >, and molpro::linalg::itsolv::IterativeSolverTemplate< Optimize, R, R, std::map< size_t, typename R::value_type > >.
|
pure virtual |
Implemented in molpro::linalg::itsolv::IterativeSolverTemplate< LinearEigensystem, R, R, std::map< size_t, typename R::value_type > >, molpro::linalg::itsolv::IterativeSolverTemplate< LinearEquations, R, R, std::map< size_t, typename R::value_type > >, and molpro::linalg::itsolv::IterativeSolverTemplate< Optimize, R, R, std::map< size_t, typename R::value_type > >.
|
pure virtual |
Behaviour depends on the solver.
Implemented in molpro::linalg::itsolv::LinearEigensystemDavidson< R, Q, P >, molpro::linalg::itsolv::LinearEigensystemRSPT< R, Q, P >, molpro::linalg::itsolv::LinearEquationsDavidson< R, Q, P >, molpro::linalg::itsolv::OptimizeBFGS< R, Q, P >, and molpro::linalg::itsolv::OptimizeSD< R, Q, P >.
|
pure virtual |
|
pure virtual |
|
pure virtual |
signal whether end_iteration should be called
Implemented in molpro::linalg::itsolv::IterativeSolverTemplate< LinearEigensystem, R, R, std::map< size_t, typename R::value_type > >, molpro::linalg::itsolv::IterativeSolverTemplate< LinearEquations, R, R, std::map< size_t, typename R::value_type > >, and molpro::linalg::itsolv::IterativeSolverTemplate< Optimize, R, R, std::map< size_t, typename R::value_type > >.
|
pure virtual |
Implemented in molpro::linalg::itsolv::IterativeSolverTemplate< LinearEigensystem, R, R, std::map< size_t, typename R::value_type > >, molpro::linalg::itsolv::IterativeSolverTemplate< LinearEquations, R, R, std::map< size_t, typename R::value_type > >, and molpro::linalg::itsolv::IterativeSolverTemplate< Optimize, R, R, std::map< size_t, typename R::value_type > >.
|
pure virtual |
Implemented in molpro::linalg::itsolv::IterativeSolverTemplate< LinearEigensystem, R, R, std::map< size_t, typename R::value_type > >, molpro::linalg::itsolv::IterativeSolverTemplate< LinearEquations, R, R, std::map< size_t, typename R::value_type > >, and molpro::linalg::itsolv::IterativeSolverTemplate< Optimize, R, R, std::map< size_t, typename R::value_type > >.
|
pure virtual |
Implemented in molpro::linalg::itsolv::IterativeSolverTemplate< LinearEigensystem, R, R, std::map< size_t, typename R::value_type > >, molpro::linalg::itsolv::IterativeSolverTemplate< LinearEquations, R, R, std::map< size_t, typename R::value_type > >, and molpro::linalg::itsolv::IterativeSolverTemplate< Optimize, R, R, std::map< size_t, typename R::value_type > >.
|
pure virtual |
Return all options. This is no different than using getters, but can be used with forward declaration.
Implemented in molpro::linalg::itsolv::IterativeSolverTemplate< LinearEigensystem, R, R, std::map< size_t, typename R::value_type > >, molpro::linalg::itsolv::IterativeSolverTemplate< LinearEquations, R, R, std::map< size_t, typename R::value_type > >, molpro::linalg::itsolv::IterativeSolverTemplate< Optimize, R, R, std::map< size_t, typename R::value_type > >, molpro::linalg::itsolv::LinearEigensystemDavidson< R, Q, P >, molpro::linalg::itsolv::LinearEigensystemRSPT< R, Q, P >, molpro::linalg::itsolv::LinearEquationsDavidson< R, Q, P >, molpro::linalg::itsolv::OptimizeBFGS< R, Q, P >, and molpro::linalg::itsolv::OptimizeSD< R, Q, P >.
|
pure virtual |
Implemented in molpro::linalg::itsolv::IterativeSolverTemplate< LinearEigensystem, R, R, std::map< size_t, typename R::value_type > >, molpro::linalg::itsolv::IterativeSolverTemplate< LinearEquations, R, R, std::map< size_t, typename R::value_type > >, and molpro::linalg::itsolv::IterativeSolverTemplate< Optimize, R, R, std::map< size_t, typename R::value_type > >.
|
pure virtual |
Implemented in molpro::linalg::itsolv::IterativeSolverTemplate< LinearEigensystem, R, R, std::map< size_t, typename R::value_type > >, molpro::linalg::itsolv::IterativeSolverTemplate< LinearEquations, R, R, std::map< size_t, typename R::value_type > >, and molpro::linalg::itsolv::IterativeSolverTemplate< Optimize, R, R, std::map< size_t, typename R::value_type > >.
|
pure virtual |
Total number of roots we are solving for, including the ones that are already converged
Implemented in molpro::linalg::itsolv::IterativeSolverTemplate< LinearEigensystem, R, R, std::map< size_t, typename R::value_type > >, molpro::linalg::itsolv::IterativeSolverTemplate< LinearEquations, R, R, std::map< size_t, typename R::value_type > >, and molpro::linalg::itsolv::IterativeSolverTemplate< Optimize, R, R, std::map< size_t, typename R::value_type > >.
|
pure virtual |
Report whether the class is a non-linear solver.
Implemented in molpro::linalg::itsolv::LinearEigensystemDavidson< R, Q, P >, molpro::linalg::itsolv::LinearEigensystemRSPT< R, Q, P >, molpro::linalg::itsolv::LinearEquationsDavidson< R, Q, P >, molpro::linalg::itsolv::OptimizeBFGS< R, Q, P >, and molpro::linalg::itsolv::OptimizeSD< R, Q, P >.
|
delete |
|
defaultnoexcept |
|
pure virtual |
Implemented in molpro::linalg::itsolv::IterativeSolverTemplate< LinearEigensystem, R, R, std::map< size_t, typename R::value_type > >, molpro::linalg::itsolv::IterativeSolverTemplate< LinearEquations, R, R, std::map< size_t, typename R::value_type > >, and molpro::linalg::itsolv::IterativeSolverTemplate< Optimize, R, R, std::map< size_t, typename R::value_type > >.
|
pure virtual |
Writes a report to std::cout.
Implemented in molpro::linalg::itsolv::IterativeSolverTemplate< LinearEigensystem, R, R, std::map< size_t, typename R::value_type > >, molpro::linalg::itsolv::IterativeSolverTemplate< LinearEquations, R, R, std::map< size_t, typename R::value_type > >, molpro::linalg::itsolv::IterativeSolverTemplate< Optimize, R, R, std::map< size_t, typename R::value_type > >, molpro::linalg::itsolv::LinearEquationsDavidson< R, Q, P >, molpro::linalg::itsolv::OptimizeBFGS< R, Q, P >, and molpro::linalg::itsolv::OptimizeSD< R, Q, P >.
|
pure virtual |
Writes a report to cout output stream.
Implemented in molpro::linalg::itsolv::IterativeSolverTemplate< LinearEigensystem, R, R, std::map< size_t, typename R::value_type > >, molpro::linalg::itsolv::IterativeSolverTemplate< LinearEquations, R, R, std::map< size_t, typename R::value_type > >, molpro::linalg::itsolv::IterativeSolverTemplate< Optimize, R, R, std::map< size_t, typename R::value_type > >, molpro::linalg::itsolv::LinearEigensystemDavidson< R, Q, P >, molpro::linalg::itsolv::LinearEigensystemRSPT< R, Q, P >, molpro::linalg::itsolv::LinearEquationsDavidson< R, Q, P >, molpro::linalg::itsolv::LinearEquationsDavidson< R, Q, P >, molpro::linalg::itsolv::OptimizeBFGS< R, Q, P >, molpro::linalg::itsolv::OptimizeBFGS< R, Q, P >, molpro::linalg::itsolv::OptimizeSD< R, Q, P >, and molpro::linalg::itsolv::OptimizeSD< R, Q, P >.
|
pure virtual |
Sets the convergence threshold.
Implemented in molpro::linalg::itsolv::IterativeSolverTemplate< LinearEigensystem, R, R, std::map< size_t, typename R::value_type > >, molpro::linalg::itsolv::IterativeSolverTemplate< LinearEquations, R, R, std::map< size_t, typename R::value_type > >, and molpro::linalg::itsolv::IterativeSolverTemplate< Optimize, R, R, std::map< size_t, typename R::value_type > >.
|
pure virtual |
Sets the value convergence threshold.
Implemented in molpro::linalg::itsolv::IterativeSolverTemplate< LinearEigensystem, R, R, std::map< size_t, typename R::value_type > >, molpro::linalg::itsolv::IterativeSolverTemplate< LinearEquations, R, R, std::map< size_t, typename R::value_type > >, and molpro::linalg::itsolv::IterativeSolverTemplate< Optimize, R, R, std::map< size_t, typename R::value_type > >.
|
pure virtual |
Implemented in molpro::linalg::itsolv::IterativeSolverTemplate< LinearEigensystem, R, R, std::map< size_t, typename R::value_type > >, molpro::linalg::itsolv::IterativeSolverTemplate< LinearEquations, R, R, std::map< size_t, typename R::value_type > >, and molpro::linalg::itsolv::IterativeSolverTemplate< Optimize, R, R, std::map< size_t, typename R::value_type > >.
|
pure virtual |
Implemented in molpro::linalg::itsolv::IterativeSolverTemplate< LinearEigensystem, R, R, std::map< size_t, typename R::value_type > >, molpro::linalg::itsolv::IterativeSolverTemplate< LinearEquations, R, R, std::map< size_t, typename R::value_type > >, and molpro::linalg::itsolv::IterativeSolverTemplate< Optimize, R, R, std::map< size_t, typename R::value_type > >.
|
pure virtual |
Implemented in molpro::linalg::itsolv::IterativeSolverTemplate< LinearEigensystem, R, R, std::map< size_t, typename R::value_type > >, molpro::linalg::itsolv::IterativeSolverTemplate< LinearEquations, R, R, std::map< size_t, typename R::value_type > >, and molpro::linalg::itsolv::IterativeSolverTemplate< Optimize, R, R, std::map< size_t, typename R::value_type > >.
|
pure virtual |
Set all spcecified options. This is no different than using setters, but can be used with forward declaration.
Implemented in molpro::linalg::itsolv::IterativeSolverTemplate< LinearEigensystem, R, R, std::map< size_t, typename R::value_type > >, molpro::linalg::itsolv::IterativeSolverTemplate< LinearEquations, R, R, std::map< size_t, typename R::value_type > >, molpro::linalg::itsolv::IterativeSolverTemplate< Optimize, R, R, std::map< size_t, typename R::value_type > >, molpro::linalg::itsolv::LinearEigensystemDavidson< R, Q, P >, molpro::linalg::itsolv::LinearEigensystemRSPT< R, Q, P >, molpro::linalg::itsolv::LinearEquationsDavidson< R, Q, P >, molpro::linalg::itsolv::OptimizeBFGS< R, Q, P >, and molpro::linalg::itsolv::OptimizeSD< R, Q, P >.
|
pure virtual |
Implemented in molpro::linalg::itsolv::IterativeSolverTemplate< LinearEigensystem, R, R, std::map< size_t, typename R::value_type > >, molpro::linalg::itsolv::IterativeSolverTemplate< LinearEquations, R, R, std::map< size_t, typename R::value_type > >, and molpro::linalg::itsolv::IterativeSolverTemplate< Optimize, R, R, std::map< size_t, typename R::value_type > >.
|
pure virtual |
Attach a profiler in order to collect performance data.
profiler |
Implemented in molpro::linalg::itsolv::IterativeSolverTemplate< LinearEigensystem, R, R, std::map< size_t, typename R::value_type > >, molpro::linalg::itsolv::IterativeSolverTemplate< LinearEquations, R, R, std::map< size_t, typename R::value_type > >, and molpro::linalg::itsolv::IterativeSolverTemplate< Optimize, R, R, std::map< size_t, typename R::value_type > >.
|
pure virtual |
Implemented in molpro::linalg::itsolv::IterativeSolverTemplate< LinearEigensystem, R, R, std::map< size_t, typename R::value_type > >, molpro::linalg::itsolv::IterativeSolverTemplate< LinearEquations, R, R, std::map< size_t, typename R::value_type > >, and molpro::linalg::itsolv::IterativeSolverTemplate< Optimize, R, R, std::map< size_t, typename R::value_type > >.
|
pure virtual |
Implemented in molpro::linalg::itsolv::IterativeSolverTemplate< LinearEigensystem, R, R, std::map< size_t, typename R::value_type > >, molpro::linalg::itsolv::IterativeSolverTemplate< LinearEquations, R, R, std::map< size_t, typename R::value_type > >, and molpro::linalg::itsolv::IterativeSolverTemplate< Optimize, R, R, std::map< size_t, typename R::value_type > >.
|
pure virtual |
Construct solution and residual for a given set of roots.
Implemented in molpro::linalg::itsolv::IterativeSolverTemplate< LinearEigensystem, R, R, std::map< size_t, typename R::value_type > >, molpro::linalg::itsolv::IterativeSolverTemplate< LinearEquations, R, R, std::map< size_t, typename R::value_type > >, and molpro::linalg::itsolv::IterativeSolverTemplate< Optimize, R, R, std::map< size_t, typename R::value_type > >.
|
pure virtual |
Implemented in molpro::linalg::itsolv::IterativeSolverTemplate< LinearEigensystem, R, R, std::map< size_t, typename R::value_type > >, molpro::linalg::itsolv::IterativeSolverTemplate< LinearEquations, R, R, std::map< size_t, typename R::value_type > >, and molpro::linalg::itsolv::IterativeSolverTemplate< Optimize, R, R, std::map< size_t, typename R::value_type > >.
|
pure virtual |
Implemented in molpro::linalg::itsolv::IterativeSolverTemplate< LinearEigensystem, R, R, std::map< size_t, typename R::value_type > >, molpro::linalg::itsolv::IterativeSolverTemplate< LinearEquations, R, R, std::map< size_t, typename R::value_type > >, and molpro::linalg::itsolv::IterativeSolverTemplate< Optimize, R, R, std::map< size_t, typename R::value_type > >.
|
pure virtual |
Constructs parameters of selected roots.
Implemented in molpro::linalg::itsolv::IterativeSolverTemplate< LinearEigensystem, R, R, std::map< size_t, typename R::value_type > >, molpro::linalg::itsolv::IterativeSolverTemplate< LinearEquations, R, R, std::map< size_t, typename R::value_type > >, and molpro::linalg::itsolv::IterativeSolverTemplate< Optimize, R, R, std::map< size_t, typename R::value_type > >.
|
pure virtual |
Implemented in molpro::linalg::itsolv::IterativeSolverTemplate< LinearEigensystem, R, R, std::map< size_t, typename R::value_type > >, molpro::linalg::itsolv::IterativeSolverTemplate< LinearEquations, R, R, std::map< size_t, typename R::value_type > >, and molpro::linalg::itsolv::IterativeSolverTemplate< Optimize, R, R, std::map< size_t, typename R::value_type > >.
|
pure virtual |
Implemented in molpro::linalg::itsolv::IterativeSolverTemplate< LinearEigensystem, R, R, std::map< size_t, typename R::value_type > >, molpro::linalg::itsolv::IterativeSolverTemplate< LinearEquations, R, R, std::map< size_t, typename R::value_type > >, and molpro::linalg::itsolv::IterativeSolverTemplate< Optimize, R, R, std::map< size_t, typename R::value_type > >.
|
pure virtual |
Simplified one-call solver.
parameters | A set of scratch vectors. On entry, these vectors should be filled with starting guesses. Where possible, the number of vectors should be equal to the number of solutions sought, but a smaller array is permitted. |
actions | A set of scratch vectors. It should have the same size as parameters. |
problem | A Problem object defining the problem to be solved |
generate_initial_guess | Whether to start with a guess based on diagonal elements (true) or on the contents of parameters (false) |
Implemented in molpro::linalg::itsolv::IterativeSolverTemplate< LinearEigensystem, R, R, std::map< size_t, typename R::value_type > >, molpro::linalg::itsolv::IterativeSolverTemplate< LinearEquations, R, R, std::map< size_t, typename R::value_type > >, molpro::linalg::itsolv::IterativeSolverTemplate< Optimize, R, R, std::map< size_t, typename R::value_type > >, and molpro::linalg::itsolv::LinearEquationsDavidson< R, Q, P >.
|
pure virtual |
Implemented in molpro::linalg::itsolv::IterativeSolverTemplate< LinearEigensystem, R, R, std::map< size_t, typename R::value_type > >, molpro::linalg::itsolv::IterativeSolverTemplate< LinearEquations, R, R, std::map< size_t, typename R::value_type > >, and molpro::linalg::itsolv::IterativeSolverTemplate< Optimize, R, R, std::map< size_t, typename R::value_type > >.
|
pure virtual |
Implemented in molpro::linalg::itsolv::IterativeSolverTemplate< LinearEigensystem, R, R, std::map< size_t, typename R::value_type > >, molpro::linalg::itsolv::IterativeSolverTemplate< LinearEquations, R, R, std::map< size_t, typename R::value_type > >, and molpro::linalg::itsolv::IterativeSolverTemplate< Optimize, R, R, std::map< size_t, typename R::value_type > >.
|
pure virtual |
Implemented in molpro::linalg::itsolv::IterativeSolverTemplate< LinearEigensystem, R, R, std::map< size_t, typename R::value_type > >, molpro::linalg::itsolv::IterativeSolverTemplate< LinearEquations, R, R, std::map< size_t, typename R::value_type > >, and molpro::linalg::itsolv::IterativeSolverTemplate< Optimize, R, R, std::map< size_t, typename R::value_type > >.
|
pure virtual |
Get the solver's suggestion of which degrees of freedom would be best to add to the P-space.
solution | Current solution |
residual | Current residual |
max_number | Suggest no more than this number |
threshold | Suggest only axes for which the current residual and update indicate an energy improvement in the next iteration of this amount or more. |
Implemented in molpro::linalg::itsolv::IterativeSolverTemplate< LinearEigensystem, R, R, std::map< size_t, typename R::value_type > >, molpro::linalg::itsolv::IterativeSolverTemplate< LinearEquations, R, R, std::map< size_t, typename R::value_type > >, and molpro::linalg::itsolv::IterativeSolverTemplate< Optimize, R, R, std::map< size_t, typename R::value_type > >.
|
pure virtual |
Test a supplied problem class.
problem | |
v0 | |
v1 | |
v2 |
Implemented in molpro::linalg::itsolv::IterativeSolverTemplate< LinearEigensystem, R, R, std::map< size_t, typename R::value_type > >, molpro::linalg::itsolv::IterativeSolverTemplate< LinearEquations, R, R, std::map< size_t, typename R::value_type > >, and molpro::linalg::itsolv::IterativeSolverTemplate< Optimize, R, R, std::map< size_t, typename R::value_type > >.
|
pure virtual |
Report the function value for the current optimum solution.
Implemented in molpro::linalg::itsolv::IterativeSolverTemplate< LinearEigensystem, R, R, std::map< size_t, typename R::value_type > >, molpro::linalg::itsolv::IterativeSolverTemplate< LinearEquations, R, R, std::map< size_t, typename R::value_type > >, and molpro::linalg::itsolv::IterativeSolverTemplate< Optimize, R, R, std::map< size_t, typename R::value_type > >.
|
pure virtual |
Working set of roots that are not yet converged.
Implemented in molpro::linalg::itsolv::IterativeSolverTemplate< LinearEigensystem, R, R, std::map< size_t, typename R::value_type > >, molpro::linalg::itsolv::IterativeSolverTemplate< LinearEquations, R, R, std::map< size_t, typename R::value_type > >, and molpro::linalg::itsolv::IterativeSolverTemplate< Optimize, R, R, std::map< size_t, typename R::value_type > >.
|
inlinevirtual |
The calculated eigenvalues for roots in the working set (eigenvalue problems) or zero (otherwise)
Reimplemented in molpro::linalg::itsolv::LinearEigensystemDavidson< R, Q, P >, and molpro::linalg::itsolv::LinearEigensystemRSPT< R, Q, P >.