Class template jacobi_davidson
ietl::jacobi_davidson
Synopsis
template<typename MATRIX, typename VS>
class jacobi_davidson {
public:
typedef vectorspace_traits< VS >::vector_type vector_type;
typedef vectorspace_traits< VS >::scalar_type scalar_type;
typedef ietl::number_traits< scalar_type >::magnitude_type magnitude_type;
jacobi_davidson(const MATRIX &, const VS &, DesiredEigenvalue = Largest);
~jacobi_davidson();
template<typename GEN, typename SOLVER, typename ITER>
std::pair< magnitude_type, vector_type >
calculate_eigenvalue(const GEN &, SOLVER &, ITER &);
template<typename GEN, typename SOLVER, typename ITER>
std::pair< typename jacobi_davidson< MATRIX, VS >::magnitude_type, typename jacobi_davidson< MATRIX, VS >::vector_type >
calculate_eigenvalue(const GEN &, SOLVER &, ITER &);
void get_extremal_eigenvalue(magnitude_type &, std::vector< double > &,
fortran_int_t);
void get_extremal_eigenvalue(magnitude_type &,
std::vector< std::complex< double > > &,
fortran_int_t);
};
Description
jacobi_davidson
public
construct/copy/destruct
jacobi_davidson(const MATRIX & matrix, const VS & vec,
DesiredEigenvalue desired = Largest);
~jacobi_davidson();
jacobi_davidson
public member functions
template<typename GEN, typename SOLVER, typename ITER>
std::pair< magnitude_type, vector_type >
calculate_eigenvalue(const GEN & gen, SOLVER & solver, ITER & iter);
template<typename GEN, typename SOLVER, typename ITER>
std::pair< typename jacobi_davidson< MATRIX, VS >::magnitude_type, typename jacobi_davidson< MATRIX, VS >::vector_type >
calculate_eigenvalue(const GEN & gen, SOLVER & solver, ITER & iter);
jacobi_davidson
private member functions
void get_extremal_eigenvalue(magnitude_type & theta,
std::vector< double > & s, fortran_int_t dim);
void get_extremal_eigenvalue(magnitude_type & theta,
std::vector< std::complex< double > > & s,
fortran_int_t dim);