iterative-solver 0.0
 
Loading...
Searching...
No Matches
LinearEigensystemExample.cpp

Example for solving linear eigensystem

#include "ExampleProblem.h"
#include <iostream>
#include <molpro/linalg/itsolv/SolverFactory.h>
#include <molpro/mpi.h>
int main(int argc, char* argv[]) {
molpro::mpi::init();
{
auto problem = ExampleProblem(argc > 1 ? std::stoi(argv[1]) : 20);
using Rvector = decltype(problem)::container_t;
solver->set_n_roots(argc > 2 ? std::stoi(argv[2]) : 2);
solver->set_max_iter(100);
Rvector c(problem.n), g(problem.n);
if (not solver->solve(c, g, problem, true))
std::cout << "failed" << std::endl;
else
std::cout << "converged in " << solver->statistics().iterations << " iterations" << std::endl;
solver->solution(c, g);
for (const auto& ev : solver->eigenvalues())
std::cout << "Final eigenvalue: " << ev << std::endl;
}
molpro::mpi::finalize();
}
#include <molpro/linalg/itsolv/SolverFactory-implementation.h>
#include <vector>
std::map<size_t, double>>;
Definition DistrArraySpan.h:7
Factory for creating instances of specific solver implementations from the corresponding Options obje...
Definition SolverFactory.h:74
std::unique_ptr< LinearEigensystem< R, Q, P > > create_LinearEigensystem(const LinearEigensystemOptions &options, const std::shared_ptr< ArrayHandlers< R, Q, P > > &handlers=std::make_shared< molpro::linalg::itsolv::ArrayHandlers< R, Q, P > >())
Definition SolverFactory.h:111