chrono::modal::ChKrylovSchurEig Class Reference

## Description

Compute (complex) eigenvalues and eigenvectors using the Krylov-Schur algorithm.

Adapted from Matlab code at https://github.com/dingxiong/KrylovSchur Use one of the chrono::modal::callback_Ax provided above depending on the type of problem that you must solve.

#include <ChKrylovSchurEig.h>

## Public Member Functions

ChKrylovSchurEig (ChMatrixDynamic< std::complex< double >> &v, ChVectorDynamic< std::complex< double >> &eig, bool &isC, bool &flag, int &nc, int &ni, callback_Ax *Ax_function, ChVectorDynamic< std::complex< double >> &v1, const int n, const int k, const int m, const int maxIt, const double tol)

## ◆ ChKrylovSchurEig()

 chrono::modal::ChKrylovSchurEig::ChKrylovSchurEig ( ChMatrixDynamic< std::complex< double >> & v, ChVectorDynamic< std::complex< double >> & eig, bool & isC, bool & flag, int & nc, int & ni, callback_Ax * Ax_function, ChVectorDynamic< std::complex< double >> & v1, const int n, const int k, const int m, const int maxIt, const double tol )
Parameters
 v output matrix with eigenvectors as columns, will be resized eig output vector with eigenvalues (real part not zero if some damping), will be resized isC 0 = k-th eigenvalue is real, 1= k-th and k-th+1 are complex conjugate pairs flag 0 = has converged, 1 = hasn't converged nc number of converged eigenvalues ni number of used iterations Ax_function compute the A*x operation, assuming standard eigenvalue problem A*v=lambda*v. v1 initial approx of eigenvector, or random n size of A k number of needed eigenvalues m Krylov restart threshold (largest dimension of krylov subspace) maxIt max iteration number tol tolerance

The documentation for this class was generated from the following files:
• /builds/uwsbel/chrono/src/chrono_modal/ChKrylovSchurEig.h
• /builds/uwsbel/chrono/src/chrono_modal/ChKrylovSchurEig.cpp